Details
-
Bug
-
Resolution: Obsolete
-
Low
-
None
-
1
-
Severity 1 - Critical
-
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
- 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.