JVM Crashes after switching from G1GC to Shenandoah

Xi Cheng xcheng.dev at gmail.com
Wed Aug 18 23:58:11 UTC 2021


Hi, after we have switched from G1GC to Shenandoah for JDK 11.0.11 on
Aarch64,
We start frequently encounter JVM crashes with the following messages:

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x0000ffff7485b424, pid=9, tid=1661

#

# JRE version: OpenJDK Runtime Environment (11.0.11+9) (build
11.0.11+9-Ubuntu-0ubuntu2.18.04)

# Java VM: OpenJDK 64-Bit Server VM (11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed
mode, tiered, shenandoah gc, linux-aarch64)

# Problematic frame:

# J 22198 c1
java.util.concurrent.SynchronousQueue$TransferStack.transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
java.base at 11.0.11 (380 bytes) @ 0x0000ffff7485b424
[0x0000ffff74856d00+0x0000000000004724]

#

# Core dump will be written. Default location: Core dumps may be processed
with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h" (or dumping
to ...)

#

# An error report file with more information is saved as:

# /java_error.log

Compiled method (c1) 4020651 22198       3
java.util.concurrent.SynchronousQueue$TransferStack::transfer
(380 bytes)

 total in heap  [0x0000ffff74855b90,0x0000ffff748609c8] = 44600

 relocation     [0x0000ffff74855d00,0x0000ffff74856cd0] = 4048

 main code      [0x0000ffff74856d00,0x0000ffff7485dd80] = 28800

 stub code      [0x0000ffff7485dd80,0x0000ffff7485e890] = 2832

 oops           [0x0000ffff7485e890,0x0000ffff7485e8d0] = 64

 metadata       [0x0000ffff7485e8d0,0x0000ffff7485eb70] = 672

 scopes data    [0x0000ffff7485eb70,0x0000ffff7485fc78] = 4360

 scopes pcs     [0x0000ffff7485fc78,0x0000ffff74860978] = 3328

 dependencies   [0x0000ffff74860978,0x0000ffff74860980] = 8

 nul chk table  [0x0000ffff74860980,0x0000ffff748609c8] = 72

Could not load hsdis-aarch64.so; library not loadable; PrintAssembly is
disabled

#

# If you would like to submit a bug report, please visit:

#   https://bugs.launchpad.net/ubuntu/+source/openjdk-lts

#


It is not too clear to us why this happens, our JVM arg is as follows:


-XX:+UnlockExperimentalVMOptions -XX:+PreserveFramePointer
-XX:+UseShenandoahGC -XX:+AggressiveOpts -XX:ReservedCodeCacheSize=500M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000 -Xms157286m -Xmx157286m
-XX:MaxGCPauseMillis=1000 -XX:NativeMemoryTracking=detail
-XX:InitiatingHeapOccupancyPercent=5 -XX:OnOutOfMemoryError="kill -9 %p"
-XX:G1NewSizePercent=1 -XX:ParallelGCThreads=40 -XX:ConcGCThreads=24


Curious what may lead to the error above and what should we look for in the
error and gc logs?


Thanks


More information about the shenandoah-dev mailing list