Skip to content

GC crash in native executable with graalvm 20.2 and 20.3 #3096

@skoptelov

Description

@skoptelov

Describe the issue

I have a Quarkus app that, when compiled to native linux x86_64 and run in docker, crashes in GC. Crash timing is immediately on container start, or a bit later, depending on memory settings (faster crash with lower heap memory). Rolling back to 20.1 solved the issue.

Steps to reproduce the issue
It's a proprietary app, with a bunch of dependencies, so isolating the minimal repro is difficult. Hopefully crash info will provide some insight into what's going on.

Describe GraalVM and your environment:

  • GraalVM CE 20.2, 20.3
  • JDK major version: 11
  • OS: linux
  • Architecture: x86_64

More details
Here is the example of crash info in container logs:
https://pastebin.com/THUHuDUd

All crashes follow the same pattern - stack trace points to GC logic (OldGeneration.promoteObject and up), which is called from somewhere in user code (GC is triggered from different location every crash).

Here is the command line used to make native image:

/home/gitlab-runner/.sdkman/candidates/java/20.3.0.r11-grl/bin/native-image -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-DCoordinatorEnvironmentBean.transactionStatusManagerEnable=false -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -J-Duser.language=en -J-Dfile.encoding=UTF-8 -J-Dfile.encoding=UTF-8 -H:ResourceConfigurationFiles=resources-config.json -H:ReflectionConfigurationFiles=reflection-config.json,reflection-poi.json --report-unsupported-elements-at-runtime --allow-incomplete-classpath --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -jar equeue-0.2.26-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http,https --enable-all-security-services --no-server -H:-UseServiceLoaderFeature -H:+StackTrace equeue-0.2.26-runner

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions