Issue Summary

      This is a combination of existing bugs: IMFC-72 & IMFC-82
      Insight Macro for Confluence with versions above 1.4.1 could potentially cause JVM crash. Problematic frame is libj2v8_linux_x86_64.so+0xae3a19

      Steps to Reproduce

      • Set up a Confluence instance, such as 7.11.1
      • Set up a Jira instance, such as 8.13.1
      • Once both instances are started, link Jira and Confluence using the Application Links.

      On Jira side

      • Install the Insight NVD plugin for Insight. This plugin is not involved on this bug. We just used it to create over 30k objects to generate custom data)
      • Create a new Insight object schema
      • From this new schema, create a new CVE import and synchronize it - this will create a lot of objects

      On Confluence side

      • Install Insight for Confluence app
      • Configure an Insight Macro to use the newly created application link (System / Manage Apps, select Insight Macro and click configure)
      • Create a new page and insert the Insight Macro.
      • In the macro configuration, select the Insight schema you just created
      • Select all the attributes (to make the response as big as possible)
      • Set the 'Load more limit' to 500.
      • On the new page, the list of objects will be displayed
      • Export this page as PDF or Word

      Expected Results

      The PDF should be exported and Confluence does not crash
      OR
      Insight objects are loaded in Confluence pages without Confluence crashing

      Actual Results

      JVM (Confluence) crashes with

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      #  SIGILL (0x4) at pc=0x00007f0d2d1eba19, pid=433, tid=758
      #
      # JRE version: OpenJDK Runtime Environment AdoptOpenJDK (11.0.10+9) (build 11.0.10+9)
      # Java VM: OpenJDK 64-Bit Server VM AdoptOpenJDK (11.0.10+9, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
      # Problematic frame:
      # C  [libj2v8_linux_x86_64.so+0xae3a19]  v8::base::OS::Abort()+0x9
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /var/atlassian/application-data/confluence/core.433)
      #
      # If you would like to submit a bug report, please visit:
      #   https://github.com/AdoptOpenJDK/openjdk-support/issues
      # The crash happened outside the Java Virtual Machine in native code.
      # See problematic frame for where to report the bug.
      #
      
      ---------------  S U M M A R Y ------------
      
      Command Line: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -Djava.util.logging.config.file=/opt/atlassian/confluence/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -XX:ReservedCodeCacheSize=256m -XX:+UseCodeCacheFlushing -Djdk.tls.server.protocols=TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2 -Dconfluence.context.path= -Datlassian.plugins.startup.options=-fg -Djava.locale.providers=JRE,SPI,CLDR -Dorg.apache.tomcat.websocket.DEFAULT_BUFFER_SIZE=32768 -Dsynchrony.enable.xhr.fallback=true -Xms20g -Xmx20g -Dconfluence.home=/var/atlassian/application-data/confluence -XX:+UseG1GC -Datlassian.plugins.enable.wait=300 -Djava.awt.headless=true -XX:G1ReservePercent=20 -Xloggc:/opt/atlassian/confluence/logs/gc-2021-07-27_07-36-39.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M -Xlog:gc+age=debug:file=/opt/atlassian/confluence/logs/gc-2021-07-27_07-36-39.log::filecount=5,filesize=2M -XX:-PrintGCDetails -XX:+PrintGCDateStamps -XX:-PrintTenuringDistribution -XX:+IgnoreUnrecognizedVMOptions -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -XX:+UseContainerSupport -XX:+UseCodeCacheFlushing -Dconversion.sandbox.pool.size=2 -Dconversion.sandbox.memory.limit.megabytes=1024 -Ddocument.conversion.sandbox.memory.requirement.megabytes=512 -Ddocument.conversion.sandbox.request.time.limit.secs=60 -XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=1g -XX:+DisableExplicitGC -Dsynchrony.service.url=https://confluence-stg.cats.ktc-int.net/synchrony/v1 -Dsynchrony.enable.xhr.fallback=true -Dconfluence.cluster.node.name=confluence-c230_node --add-modules=java.se --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -DConfluenceHomeLogAppender.disabled=false -Dignore.endorsed.dirs= -Dcatalina.base=/opt/atlassian/confluence -Dcatalina.home=/opt/atlassian/confluence -Djava.io.tmpdir=/opt/atlassian/confluence/temp org.apache.catalina.startup.Bootstrap start
      
      Host: AMD EPYC 7452 32-Core Processor, 4 cores, 31G, Ubuntu 20.04.2 LTS
      Time: Tue Jul 27 07:46:42 2021 UTC elapsed time: 602.813415 seconds (0d 0h 10m 2s)
      
      ---------------  T H R E A D  ---------------
      
      Current thread (0x00007f0e56504000):  JavaThread "http-nio-8090-exec-1 url: /spaces/flyingpdf/pdfpageexport.action; user: 00wendl" daemon [_thread_in_native, id=758, stack(0x00007f0d35d3d000,0x00007f0d35e3e000)]
      
      Stack: [0x00007f0d35d3d000,0x00007f0d35e3e000],  sp=0x00007f0d35e2bcb8,  free space=955k
      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      C  [libj2v8_linux_x86_64.so+0xae3a19]  v8::base::OS::Abort()+0x9
      C  [libj2v8_linux_x86_64.so+0x48efa5]  v8::internal::V8::FatalProcessOutOfMemory(char const*, bool)+0x1d5
      C  [libj2v8_linux_x86_64.so+0x54bf19]  v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace)+0x159
      C  [libj2v8_linux_x86_64.so+0x8afc6e]  v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*)+0x5e
      C  0x00002cd2c6206295
      C  0x00002cd2c6232ab0
      C  0x00002cd2c6377834
      C  0x00002cd2c6376aee
      C  0x00002cd2c6375c59
      C  0x00002cd2c63755c6
      C  0x00002cd2c6219d7d
      C  0x00002cd2c6218ba2
      C  [libj2v8_linux_x86_64.so+0x5427f0]  v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool)+0x120
      C  [libj2v8_linux_x86_64.so+0x4996f7]  v8::Script::Run(v8::Local<v8::Context>)+0x137
      C  [libj2v8_linux_x86_64.so+0x4a4fb4]  v8::Script::Run()+0x34
      C  [libj2v8_linux_x86_64.so+0x3f687a]  runScript(v8::Isolate*, JNIEnv_*, v8::Local<v8::Script>*, v8::TryCatch*, v8::Local<v8::Value>&, long)+0x37
      C  [libj2v8_linux_x86_64.so+0x3f78df]  Java_com_eclipsesource_v8_V8__1executeStringScript+0x255
      j  com.eclipsesource.v8.V8._executeStringScript(JLjava/lang/String;Ljava/lang/String;I)Ljava/lang/String;+0
      j  com.eclipsesource.v8.V8.executeStringScript(JLjava/lang/String;Ljava/lang/String;I)Ljava/lang/String;+7
      j  com.eclipsesource.v8.V8.executeStringScript(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;+16
      j  com.eclipsesource.v8.V8.executeStringScript(Ljava/lang/String;)Ljava/lang/String;+4
      j  com.mindville.confluence.plugins.insight.export.ExportRenderer.render(Ljava/util/Map;)Ljava/lang/String;+724
      j  com.mindville.confluence.plugins.insight.InsightObjectsMacro.execute(Ljava/util/Map;Ljava/lang/String;Lcom/atlassian/confluence/content/render/xhtml/ConversionContext;)Ljava/lang/String;+186
      
      

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

        1. Application_Links_-_Confluence.png
          Application_Links_-_Confluence.png
          163 kB
        2. Application_Links_-_Jira.png
          Application_Links_-_Jira.png
          194 kB
        3. CVE Import.png
          CVE Import.png
          131 kB
        4. Insight_Confluence_Macro_1.png
          Insight_Confluence_Macro_1.png
          390 kB
        5. Insight_Confluence_Macro_2.png
          Insight_Confluence_Macro_2.png
          408 kB
        6. Insight_Confluence_Macro_3.png
          Insight_Confluence_Macro_3.png
          311 kB
        7. Insight_Confluence_Macro_4.png
          Insight_Confluence_Macro_4.png
          170 kB

            [JSDSERVER-7387] Insight Macro for Confluence causes JVM crash

            hi,

            need some help!

            this issue is also affected with insight for confluence 1.6.9.

            our confluence instance crashes every time while exporting one single confluence page with one insight for confluence macro.

             

            Systeminformation:

            Confluence 7.13.2

            Insight for Confluence 1.6.9

            Jira 8.13.13

            Insight 8.9.4

            Florian Schüller added a comment - hi, need some help! this issue is also affected with insight for confluence 1.6.9. our confluence instance crashes every time while exporting one single confluence page with one insight for confluence macro.   Systeminformation: Confluence 7.13.2 Insight for Confluence 1.6.9 Jira 8.13.13 Insight 8.9.4

            hi,

            i can also reproduce this issue while exporting one single confluence page with an insight for confluence makro (in 1.6.6 latest version).

            "load more limit" is only set to 25 and there are only a few objects to load. (less than 50 objects)

             

            there is no difference if i try to export with the confluence pdf export or for example with an addon like scroll pdf exporter - confluence always crashed...

             

            would be great if there is an solution for this issue.

            best regards,

            florian

            Florian Schüller added a comment - hi, i can also reproduce this issue while exporting one single confluence page with an insight for confluence makro (in 1.6.6 latest version). "load more limit" is only set to 25 and there are only a few objects to load. (less than 50 objects)   there is no difference if i try to export with the confluence pdf export or for example with an addon like scroll pdf exporter - confluence always crashed...   would be great if there is an solution for this issue. best regards, florian

              828a13f9a5a4 François Dénommée (Inactive)
              smitra2@atlassian.com Suddha
              Affected customers:
              9 This affects my team
              Watchers:
              30 Start watching this issue

                Created:
                Updated:
                Resolved: