JIRA crashes due to Java 8u25+ bug
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
JIRA 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/jira/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/JIRA. Java 8u25 and Java 8u40 are both affected (details on the issue above).
This problem was fixed in Java 1.8u51 and above. For full details please see CONF-37914 - Getting issue details... STATUS
Workaround
- Add the
-XX:-UseAESIntrinsics
flag to the JVM.Linux
Windows Service
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 to a Java release that contains the fix (1.8u51+).