Uploaded image for project: 'Jira Cloud'
  1. Jira Cloud
  2. JRACLOUD-66832

Converting SVG avatars on PNG in notification may cause OOME in Metaspace

    XMLWordPrintable

Details

    Description

      Summary

      We have identified in one case, that the conversion of SVG files to PNG to add to notifications in JIRA Cloud may take a lot of MetaSpace, which may ultimately result in OOME.

      This seems to be due to the Apache Batik library.

      Steps to Reproduce

      1. Have a large number of notifications, adding the 'default SVG avatars' to the emails

      Expected Results

      All notifications are sent correctly, we have enough MetaSpace to store/convert all avatars.

      Actual Results

      An outage may be caused due to an OOME in Metaspace.

      Threads like this cause the OOME:

      2017-04-14 16:52:02.407463500 2017-04-14 16:52:02,402 Caesium-1-1 ERROR rnovak     [c.a.s.caesium.impl.SchedulerQueueWorker] Unhandled exception thrown by job QueuedJob[jobId=2171bde2-4819-43e2-bccb-bcdaa44d8e57,deadline=1492181218028]
      2017-04-14 16:52:02.407465500 java.lang.OutOfMemoryError: Metaspace
      2017-04-14 16:52:02.407465500       at sun.java2d.SurfaceData.<clinit>(SurfaceData.java:451)
      2017-04-14 16:52:02.407465500       at sun.java2d.SunGraphicsEnvironment.createGraphics(SunGraphicsEnvironment.java:185)
      2017-04-14 16:52:02.407466500       at sun.java2d.HeadlessGraphicsEnvironment.createGraphics(HeadlessGraphicsEnvironment.java:89)
      2017-04-14 16:52:02.407478500       at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1182)
      ...
      2017-04-14 16:52:02.407489500       at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:111)
      2017-04-14 16:52:02.407490500       at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
      2017-04-14 16:52:02.407491500       at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
      2017-04-14 16:52:02.407492500       at com.atlassian.jira.avatar.AvatarTranscoderImpl.transcodeAndTag(AvatarTranscoderImpl.java:68)
      2017-04-14 16:52:02.407492500       at com.atlassian.jira.avatar.AvatarTranscoderImpl.transcodeAndTag(AvatarTranscoderImpl.java:47)
      2017-04-14 16:52:02.407495500       at com.atlassian.jira.avatar.AvatarTranscoderImpl.transcodeAndTagToStream(AvatarTranscoderImpl.java:41)
      2017-04-14 16:52:02.407495500       at com.atlassian.jira.avatar.AvatarManagerImpl.lambda$processAvatarData$4(AvatarManagerImpl.java:343)
      2017-04-14 16:52:02.407496500       at com.atlassian.jira.avatar.AvatarManagerImpl$$Lambda$2419/9526537.get(Unknown Source)
      2017-04-14 16:52:02.407496500       at com.atlassian.jira.avatar.PngAvatarFormatPolicy.getData(PngAvatarFormatPolicy.java:36)
      2017-04-14 16:52:02.407504500       at com.atlassian.jira.avatar.AvatarManagerImpl.processAvatarData(AvatarManagerImpl.java:338)
      2017-04-14 16:52:02.407504500       at com.atlassian.jira.avatar.AvatarManagerImpl.readAvatarData(AvatarManagerImpl.java:398)
      2017-04-14 16:52:02.407504500       at com.atlassian.jira.mail.util.MailAttachments$TranscodedAvatarAttachment.prepareBodyPart(MailAttachments.java:405)
      2017-04-14 16:52:02.407505500       at com.atlassian.jira.mail.util.MailAttachments$AbstractAvatarAttachment.buildBodyPart(MailAttachments.java:313)
      2017-04-14 16:52:02.407507500       at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl.lambda$buildAttachmentsBodyParts$0(MailAttachmentsManagerImpl.java:225)
      2017-04-14 16:52:02.407507500       at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl$$Lambda$2411/4628411.apply(Unknown Source)
      2017-04-14 16:52:02.407511500       at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
      

      Workaround

      Contact support to have your Metaspace limit increased.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jsilveira Jaime S
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: