-
Bug
-
Resolution: Unresolved
-
Medium
-
None
-
6.4.2, 6.6.7
-
None
-
4
-
Severity 3 - Minor
-
0
-
Summary
A page with the "Content by label" macro, combined with an Excerpt Display option of "Rich content" will prevent a page from loading given enough pages with the label. Rather than the stack overflow seen in CONFSERVER-40154 the browser displays a blank page whilst it tries to load.
Environment
Confirmed in Confluence 6.4.2 and 6.6.7
Content by Label macro with Excerpt Display set to Rich Content
Steps to Reproduce
- Create a page (Test Parent Page for example) that contains the Content by Label macro. Click edit and set "Excerpt Display" to Rich Content. Add a label to this page e.g. "test"
- Create child pages that all contain the Content by Label macro with the rich content option set and the test label (In testing, performance starts to noticeably decrease with 4 child pages. The more pages you add in this configuration the longer the loading takes)
- Attempt to load any of the pages
Expected Results
Page renders in a reasonable amount of time or an error is logged/displayed
Actual Results
Nothing logged whilst page is being loaded, however, if you keep your page count low whilst still triggering the issue, you get a stack like this just before the load eventually completes. If you have too many pages, you may never see the stack as it seems to indicate the page is about to display:
WARNING [ContainerBackgroundProcessor[StandardEngine[Standalone]]] org.apache.catalina.valves.StuckThreadDetectionValve.notifyStuckThreadDetected Thread "http-nio-6670-exec-2" (id=183) has been active for 69,487 milliseconds (since 9/25/18 8:21 AM) to serve the same request for http://<URL>/Test+Parent+Page and may be stuck (configured threshold for this StuckThreadDetectionValve is 60 seconds). There is/are 1 thread(s) in total that are monitored by this Valve and may be stuck. java.lang.Throwable at java.util.HashMap.putVal(HashMap.java:631) at java.util.HashMap.putMapEntries(HashMap.java:515) at java.util.HashMap.<init>(HashMap.java:490) at org.apache.batik.svggen.SVGGraphicContext.computeContext(SVGGraphicContext.java:123) at org.apache.batik.svggen.SVGGraphicContext.<init>(SVGGraphicContext.java:87) at org.apache.batik.svggen.DOMGroupManager.processDeltaGC(DOMGroupManager.java:302) at org.apache.batik.svggen.DOMGroupManager.addElement(DOMGroupManager.java:141) at com.atlassian.plugins.roadmap.renderer.ConfluenceSVGGraphics2D$DOMGroupManagerEx.addElement(ConfluenceSVGGraphics2D.java:137) at org.apache.batik.svggen.DOMGroupManager.addElement(DOMGroupManager.java:212) at com.atlassian.plugins.roadmap.renderer.ConfluenceSVGGraphics2D$DOMGroupManagerEx.addElement(ConfluenceSVGGraphics2D.java:137) at org.apache.batik.svggen.SVGGraphics2D.fill(SVGGraphics2D.java:1383) ....