-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Medium
-
Affects Version/s: 7.0.1, 7.4.3, 7.4.5, 7.4.6, 7.7.4, 7.9.3
-
Component/s: Macros - Other Macros
-
None
-
30
-
Severity 3 - Minor
-
43
Issue Summary
Confluence pages that use the Office Powerpoint macro to reference corrupt PPTX files will generate unterminated threads in the JVM every time those pages are loaded..
This appears related to aspose-slides-19.6, so Confluence 7.0 - 7.7 is currently affected. Earlier versions of Confluence do not exhibit this problem.
Steps to Reproduce
- Install Confluence 7.x (Server or Data Center)
- Upload a corrupt Microsoft Powerpoint slide to any page (PPT/PPTX)
- Create a new page and add the 'Office Powerpoint' macro, then reference the corrupt PPTX attachment on the previous page
- Every time the page with the macro is loaded, another 'conversion-slides-interrupter-thread-0' thread will be generated in the Confluence JVM.
Expected Results
Bad attachments in Confluence shouldn't cause unbounded growth of the number of JVM threads.
Actual Results
The below exception (which may differ or even be non-existent, depending on where the corruption in the PPTX occurs) is thrown in the atlassian-confluence.log file:
2020-09-22 20:29:29,769 ERROR [DefaultSlideCacheManager:thread-2] [com.benryan.conversion.AbstractSlideConversionTask] call problem while converting disaster.pptx -- referer: http://localhost:8090/display/ST/bug+conversion | url: /plugins/servlet/pptslide | traceId: 42350f2b1924045c | userName: admin class com.aspose.slides.PptxReadException: 'version' is expected. Line 1, position 56. ---> class com.aspose.slides.exceptions.XmlException: 'version' is expected. Line 1, position 56. com.aspose.slides.ms.System.Xml.gy.byte(Unknown Source) com.aspose.slides.ms.System.Xml.gy.q(Unknown Source) com.aspose.slides.ms.System.Xml.gy.p(Unknown Source) com.aspose.slides.ms.System.Xml.gy.e(Unknown Source) com.aspose.slides.ms.System.Xml.gy.case(Unknown Source) com.aspose.slides.ms.System.Xml.gx.case(Unknown Source) com.aspose.slides.ho.do(Unknown Source) com.aspose.slides.acz.do(Unknown Source) com.aspose.slides.acz.do(Unknown Source) com.aspose.slides.acz.do(Unknown Source) com.aspose.slides.Presentation.if(Unknown Source) com.aspose.slides.Presentation.do(Unknown Source) com.aspose.slides.Presentation.do(Unknown Source) com.aspose.slides.Presentation.<init>(Unknown Source) com.aspose.slides.Presentation.<init>(Unknown Source) com.atlassian.plugins.conversion.convert.image.SlidesConverter.loadPresentation(SlidesConverter.java:216) com.atlassian.plugins.conversion.convert.image.SlidesConverter.convert(SlidesConverter.java:84) com.benryan.conversion.PPtDocumentConversionTask.convertFile(PPtDocumentConversionTask.java:39) com.benryan.conversion.PPtDocumentConversionTask.convertFile(PPtDocumentConversionTask.java:18) com.benryan.conversion.AbstractSlideConversionTask.call(AbstractSlideConversionTask.java:40) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:748)
'jcmd $CONF_PID Thread.print | grep interrupt' will also show the number of these threads increasing after each page load (of the macro). Here are the threads after 7 page loads:
"conversion-slides-interrupter-thread-0" #628 daemon prio=1 os_prio=31 cpu=0.39ms elapsed=36792.31s tid=0x00007fb5e0453800 nid=0x1722f waiting on condition [0x00007000193cc000] "conversion-slides-interrupter-thread-0" #903 daemon prio=1 os_prio=31 cpu=0.32ms elapsed=460.13s tid=0x00007fb568690000 nid=0x18713 waiting on condition [0x000070001b52f000] "conversion-slides-interrupter-thread-0" #904 daemon prio=1 os_prio=31 cpu=0.20ms elapsed=459.98s tid=0x00007fb58e81a800 nid=0x3871f waiting on condition [0x000070001d286000] "conversion-slides-interrupter-thread-0" #907 daemon prio=1 os_prio=31 cpu=0.26ms elapsed=313.09s tid=0x00007fb58e8a1000 nid=0x3c91b waiting on condition [0x00007000197d8000] "conversion-slides-interrupter-thread-0" #909 daemon prio=1 os_prio=31 cpu=0.23ms elapsed=299.74s tid=0x00007fb56c9b3800 nid=0x2ed47 waiting on condition [0x0000700019be4000] "conversion-slides-interrupter-thread-0" #911 daemon prio=1 os_prio=31 cpu=0.23ms elapsed=298.32s tid=0x00007fb569a98000 nid=0x2a83f waiting on condition [0x00007000195d2000] "conversion-slides-interrupter-thread-0" #912 daemon prio=1 os_prio=31 cpu=0.24ms elapsed=296.55s tid=0x00007fb5699e1000 nid=0x1df17 waiting on condition [0x000070001d58f000]
Workaround
Currently there is no known workaround for this behaviour. A workaround will be added here when available
- links to
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
- relates to
-
PSR-617 Loading...