JVM Crashes after switching from G1GC to Shenandoah

Roman Kennke rkennke at redhat.com
Thu Aug 19 11:19:32 UTC 2021


Hi Xi Cheng,

Thanks for the report!

This looks like a problem in the C1 cas-obj barrier of Shenandoah.

Could you run this with a fastdebug build, and send us resulting hs_err* 
file?

https://builds.shipilev.net/openjdk-jdk11/

In the meantime we'll look for possible bugs / fixes.

Thanks,
Roman

> 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