Uploading of some docx files causes high CPU utilization | AEM 6.1

Issue

When uploading certain Microsoft Office documents (docx files), AEM 6.1 experiences high heap memory and CPU utilization. Thread dumps show stack traces similar to the one [1] below.

[1] Thread from thread dump: 

"JobHandler: /etc/workflow/instances/server0/2017-12-21_2/dam-parse-word-documents_591:/content/dam/test.docx/jcr:content/renditions/original" #304 daemon prio=1 os_prio=0 tid=0x00007f96d0016000 nid=0x6590 runnable [0x00007f9714351000]
   java.lang.Thread.State: RUNNABLE
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:742)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.getChars(CharUtil.java:736)
 at org.apache.xmlbeans.impl.store.CharUtil$CharJoin.access$100(CharUtil.java:646)
 at org.apache.xmlbeans.impl.store.CharUtil.getChars(CharUtil.java:86)
 at org.apache.xmlbeans.impl.store.CharUtil.saveChars(CharUtil.java:513)
 at org.apache.xmlbeans.impl.store.CharUtil.saveChars(CharUtil.java:419)
 at org.apache.xmlbeans.impl.store.CharUtil.saveChars(CharUtil.java:489)
 at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.text(Cur.java:2927)
 at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.stripText(Cur.java:3130)
 at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.text(Cur.java:3143)
 at org.apache.xmlbeans.impl.store.Locale$SaxHandler.characters(Locale.java:3291)
 at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.reportCdata(Piccolo.java:992)
 at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseXMLNS(PiccoloLexer.java:1290)
 at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseXML(PiccoloLexer.java:1261)
 at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:4812)
 at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
 at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
 at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
 at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3479)
 at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1277)
 at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1264)
 - locked <0x000000067ed5fa18> (a org.apache.xmlbeans.impl.store.Locale)
 at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
 at org.openxmlformats.schemas.wordprocessingml.x2006.main.DocumentDocument$Factory.parse(Unknown Source)
 at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:135)
 at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:165)
 at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:124)
 at com.day.cq.dam.word.process.ExtractImagesProcess.extractFromDocx(ExtractImagesProcess.java:126)
 at com.day.cq.dam.word.process.ExtractImagesProcess.execute(ExtractImagesProcess.java:189)
 at com.day.cq.workflow.compatibility.CQWorkflowProcessRunner.execute(CQWorkflowProcessRunner.java:93)

Environment

AEM 6.1.

Cause

Known product issue CQ-4231143.

Resolution

The fix for this is included in Cumulative Fix Pack 15 for AEM6.1.

If you are experiencing this issue and unable to apply the latest cumulative fix pack, then contact AEM Customer Care for a targeted fix for this issue.

 Adobe

Get help faster and easier

New user?