Uploaded image for project: 'Confluence Cloud'
  1. Confluence Cloud
  2. CONFCLOUD-53953

Section macro is causing outages in Confluence Cloud

    XMLWordPrintable

Details

    Description

      Summary

      We've had cases where the 'Section Macro' with a few other elements simply cause a page to create several threads with the same stack trace taking up all the resources and causing outages.

      This is the stack trace:

      "http-bio-1990-exec-10" #185 daemon prio=5 os_prio=0 tid=0x0939c400 nid=0x2755 runnable [0x6cebb000]
         java.lang.Thread.State: RUNNABLE
      	at java.util.regex.Pattern$Curly.match1(Pattern.java:4293)
      	at java.util.regex.Pattern$Curly.match(Pattern.java:4236)
      	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
      	at java.util.regex.Pattern$Start.match(Pattern.java:3461)
      	at java.util.regex.Matcher.search(Matcher.java:1248)
      	at java.util.regex.Matcher.find(Matcher.java:637)
      	at com.atlassian.confluence.extra.layout.SectionMacro.execute(SectionMacro.java:71)
      	at com.atlassian.confluence.extra.layout.xhtml.SectionMacro.execute(SectionMacro.java:18)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.atlassian.confluence.macro.xhtml.XhtmlMacroManager$ResourceAwareMacroInvocationHandler.invoke(XhtmlMacroManager.java:203)
      	at com.sun.proxy.$Proxy2576.execute(Unknown Source)
      	at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.executeMacro(ViewMacroMarshaller.java:249)
      	at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.marshalInternal(ViewMacroMarshaller.java:169)
      	at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.lambda$marshal$0(ViewMacroMarshaller.java:122)
      	at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller$$Lambda$893/5860945.marshal(Unknown Source)
      	at com.atlassian.confluence.impl.content.render.xhtml.analytics.MetricsCollectingMarshaller.marshal(MetricsCollectingMarshaller.java:52)
      	at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.marshal(ViewMacroMarshaller.java:131)
      	at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.marshal(ViewMacroMarshaller.java:57)
      	at com.atlassian.confluence.content.render.xhtml.UnmarshalMarshalFragmentTransformer.transform(UnmarshalMarshalFragmentTransformer.java:29)
      	at com.atlassian.confluence.content.render.xhtml.transformers.DefaultFragmentTransformer.transformFragment(DefaultFragmentTransformer.java:141)
      	at com.atlassian.confluence.content.render.xhtml.transformers.DefaultFragmentTransformer.transform(DefaultFragmentTransformer.java:123)
      	at com.atlassian.confluence.content.render.xhtml.storage.StorageXhtmlTransformer.transform(StorageXhtmlTransformer.java:41)
      	at com.atlassian.confluence.content.render.xhtml.TransformerChain.transform(TransformerChain.java:33)
      	at com.atlassian.confluence.content.render.xhtml.TransformerChain.transform(TransformerChain.java:33)
      	at com.atlassian.confluence.content.render.xhtml.PluggableTransformerChain.transform(PluggableTransformerChain.java:39)
      	at com.atlassian.confluence.content.render.xhtml.DefaultRenderer.render(DefaultRenderer.java:143)
      	at com.atlassian.confluence.content.render.xhtml.DefaultRenderer.render(DefaultRenderer.java:117)
      	at com.atlassian.confluence.content.render.xhtml.DefaultRenderer.render(DefaultRenderer.java:111)
      	at com.atlassian.confluence.content.render.xhtml.DeviceTypeAwareRenderer.render(DeviceTypeAwareRenderer.java:42)
      

      Full stacktrace available here:
      thread_stacktrace.txt

      We could also see that a single page is the problem. In a case, we believe this was cause by a failed operation to save a draft.

      The content necessary to cause the issue is not absolutely clear, but we:

      1. Copied the 'body' from bodycontent from an affected page
      2. Injected into the 'body' of an existing page in a test instance (same version)
      3. Apart from that page, the instance was empty
      4. We replicated it in every case. An outage was caused, CPU had a spike at around 200% and an outage occurred very quickly, though nothing else was used
      5. Same thread strack trace
      6. For this test, only the 'body' of the page was copied, so no other meta data connected to the page was necessary to cause it.

      Environment

      Affected version: 1000.130.1

      Steps to Reproduce

      1. Access an affected page with section macro (section macro alone is not enough, but it's not yet absolutely clear what in the page causes it)

      Expected Results

      Page loads successfully.

      Actual Results

      An outage is caused with threads taking up all resources.

      Workaround

      1. Disable the 'Layout Macros' add-on to prevent this error
      2. Once the page in identified, removing it or only its version should resolve the issue.

      Attachments

        1. example-page.xml
          184 kB
        2. thread_stacktrace.txt
          50 kB

        Issue Links

          Activity

            People

              merickson Matthew Erickson
              jsilveira Jaime S
              Votes:
              3 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: