Confluence crashes due to 'Internal Error (sharedRuntime.cpp:833)' caused by Java 8 bug

Still need help?

The Atlassian Community is here for you.

Ask the community

Problem

Confluence Crashes with JRE error and the JVM generates a hs_err_pid file with entries similar to the one below:

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (sharedRuntime.cpp:833), pid=28631, tid=139690008549120
#  fatal error: exception happened outside interpreter, nmethods and vtable stubs at pc 0x00007f0c285e998f
#
# JRE version: Java(TM) SE Runtime Environment (8.0_31-b13) (build 1.8.0_31-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.31-b07 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /opt/atlassian/confluence/3.6.0.0/bin/hs_err_pid28631.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp

Cause

This happens due to a bug in OpenJDK (JDK-8067755) and is triggered by terminating SSL at Tomcat/Confluence.

Supposedly the issue is fixed now, but Java 8u25 and Java 8u40 are both affected (details on the issue above). Java 8u45 has been released but the problem will most likely persist.

Workaround

  •  Add the -XX:-UseAESIntrinsics flag to the JVM.
    • Linux  

      Click here to expand...
      1. Edit <confluence-install>/bin/setenv.sh
      2. Add the  -XX:-UseAESIntrinsics  JVM argument to CATALINA_OPTS.
      3. Restart Confluence.
      4. Monitor your instance with the workaround in place. This will keep the instance stable until a new JRE 8 update is released including the fix for this crash. At that time, once the JRE is upgraded, remove the workaround flag provided above.
    • Windows Service

      Expand to see Windows Service instructions
      1. Open the command window from Start >> Run >> type in 'cmd' >> Enter
      2. cd to the bin directory of your Confluence installation directory.
      3. Run:

        tomcat8w //ES//ConfluenceServiceName
      4. Click on the Java tab to see the list of current start-up options.
      5. Add -XX:-UseAESIntrinsics on it's own line under Java Options
      6. Restart Confluence

The flag provided above should work however, the original Tomcat thread suggests adding the parameter below instead:

-XX:CompileCommand=exclude,com/sun/crypto/provider/\*.\*

We've had customers succeed by adding the UseAESIntrinsics parameter so only use this option if that one doesn't work.

Resolution

  • Upgrade Java to Java 8u60 or above.

 

 

Last modified on Feb 26, 2016

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.