Synchrony is killed with SIGSEGV (0xb) - G1ParScanThreadState::copy_to_survivor_space
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
Summary
Synchrony is suddenly killed by OS. In the synchrony log(atlassian-synchrony.log), you'll see something like this:
2024-10-24 20:21:11,655 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # A fatal error has been detected by the Java Runtime Environment: 2024-11-10 09:11:24,365 DEBUG [15419:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] #
2024-10-24 20:21:11,658 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # SIGSEGV (0xb) at pc=0x00007f1f864b2da4, pid=54, tid=2123
2024-10-24 20:21:11,658 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] #
2024-10-24 20:21:11,659 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # JRE version: OpenJDK Runtime Environment Temurin-11.0.23+9 (11.0.23+9) (build 11.0.23+9)
2024-10-24 20:21:11,659 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # Java VM: OpenJDK 64-Bit Server VM Temurin-11.0.23+9 (11.0.23+9, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
2024-10-24 20:21:11,659 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # Problematic frame: 2024-10-24 20:21:11,676 DEBUG [15419:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # V [libjvm.so+0x7fcda4] G1ParScanThreadState::copy_to_survivor_space(InCSetState, oopDesc*, markOopDesc*)+0x374
2024-10-24 20:21:11,676 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] #
2024-10-24 20:21:11,677 DEBUG [111:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # An error report file with more information is saved as: 2024-11-10 09:11:24,365 DEBUG [15419:StdOutHandler [/lib/jvm/jdk-11.0.23+9/bin/java]] # /var/atlassian/application-data/confluence/hs_err_pid54.log
Environment
Confluence Data Center
Diagnosis
The generated file, hs_err_pid54.log, will have a bit more information, but the part we're looking for is that the JVM library is failing while trying to perform G1GC:
# A fatal error has been detected by the Java Runtime Environment: #
# SIGSEGV (0xb) at pc=0x00007f1f864b2da4, pid=54, tid=2123
#
# JRE version: OpenJDK Runtime Environment Temurin-11.0.23+9 (11.0.23+9) (build 11.0.23+9)
# Java VM: OpenJDK 64-Bit Server VM Temurin-11.0.23+9 (11.0.23+9, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame: # V [libjvm.so+0x7fcda4] G1ParScanThreadState::copy_to_survivor_space(InCSetState, oopDesc*, markOopDesc*)+0x374
Cause
Although there are reasons to take in consideration, we can note that the JVM is being killed by *G1ParScanThreadState::copy_to_survivor_space*. There is currently a bug opened for JDK to track this problem
Solution
The solution for this has been to change the GC algorithm for Synchrony, by adding the below parameter to the synchrony-args.properties in the confluence home, or in the shared home if it's a Cluster.
synchrony.jvm.arg.gc=-XX:+UseParallelGC