graal icon indicating copy to clipboard operation
graal copied to clipboard

[GR-39609] Deadlock breaks the native image building process

Open CH3CHO opened this issue 1 year ago • 21 comments

Describe the issue

Following error is shown when building a native image using Maven plugin.

Image generator watchdog is aborting image generation. To configure the watchdog, use the options -H:DeadlockWatchdogInterval=10 and -H:+DeadlockWatchdogExitOnTimeout

Steps to reproduce the issue

Sorry, the project uses some internal libraries, so I can't share the entire project. Here are the configuration of native-maven-plugin.

<plugin>
  <groupId>org.graalvm.buildtools</groupId>
  <artifactId>native-maven-plugin</artifactId>
  <version>0.9.28</version>
  <configuration>
    <classesDirectory>${project.build.outputDirectory}</classesDirectory>
    <metadataRepository>
      <enabled>true</enabled>
    </metadataRepository>
    <mainClass>com.xxx.testapp.AppSpringBootConfiguration</mainClass>
    <imageName>application</imageName>
    <buildArgs>
      -march=x86-64-v2
      --add-opens java.management/sun.management=ALL-UNNAMED
      --add-opens java.base/java.lang=ALL-UNNAMED
      --add-opens java.base/java.lang.reflect=ALL-UNNAMED
      --add-opens java.base/sun.reflect.annotation=ALL-UNNAMED
      --add-opens java.base/java.math=ALL-UNNAMED
      --add-opens java.base/java.util=ALL-UNNAMED
      --add-opens java.base/sun.util.calendar=ALL-UNNAMED
      --add-opens java.base/sun.util.calendar=ALL-UNNAMED
      --add-opens java.base/java.io=ALL-UNNAMED
      --add-opens java.base/java.net=ALL-UNNAMED
      --add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp.datatype=ALL-UNNAMED
    </buildArgs>
  </configuration>
  <executions>
    <execution>
      <id>add-reachability-metadata</id>
      <goals>
        <goal>add-reachability-metadata</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Describe GraalVM and your environment:

❯ java -version
java version "21.0.2" 2024-01-16 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 21.0.2+13.1 (build 21.0.2+13-LTS-jvmci-23.1-b30)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 21.0.2+13.1 (build 21.0.2+13-LTS-jvmci-23.1-b30, mixed mode, sharing)

More details

[INFO] --- native:0.9.28:compile-no-fork (default-cli) @ testapp ---
[INFO] Found GraalVM installation from JAVA_HOME variable.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.14]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for ch.qos.logback:logback-classic:1.4.14]: Configuration directory is ch.qos.logback/logback-classic/1.4.1
[INFO] [graalvm reachability metadata repository for com.fasterxml.jackson.core:jackson-databind:2.15.3]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for com.fasterxml.jackson.core:jackson-databind:2.15.3]: Configuration directory is com.fasterxml.jackson.core/jackson-databind/2.15.2
[INFO] [graalvm reachability metadata repository for org.apache.tomcat.embed:tomcat-embed-core:10.1.17]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.apache.tomcat.embed:tomcat-embed-core:10.1.17]: Configuration directory is org.apache.tomcat.embed/tomcat-embed-core/10.0.20
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-buffer:4.1.104.Final]: Configuration directory is io.netty/netty-buffer/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http:4.1.104.Final]: Configuration directory is io.netty/netty-codec-http/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-codec-http2:4.1.104.Final]: Configuration directory is io.netty/netty-codec-http2/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-common:4.1.104.Final]: Configuration directory is io.netty/netty-common/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-handler:4.1.104.Final]: Configuration directory is io.netty/netty-handler/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-resolver-dns:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-resolver-dns:4.1.104.Final]: Configuration directory is io.netty/netty-resolver-dns/4.1.80.Final
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.104.Final]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for io.netty:netty-transport:4.1.104.Final]: Configuration directory is io.netty/netty-transport/4.1.80.Final
[WARNING] Properties file at 'jar:file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar!/META-INF/native-image/io.grpc.netty.shaded.io.netty/common/native-image.properties' does not match the recommended 'META-INF/native-image/com.xxxx.framework/yyyy-client/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar!/META-INF/native-image/io.grpc.netty.shaded.io.netty/buffer/native-image.properties' does not match the recommended 'META-INF/native-image/com.xxxx.framework/yyyy-client/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar!/META-INF/native-image/io.grpc.netty.shaded.io.netty/transport/native-image.properties' does not match the recommended 'META-INF/native-image/com.xxxx.framework/yyyy-client/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar!/META-INF/native-image/io.grpc.netty.shaded.io.netty/handler/native-image.properties' does not match the recommended 'META-INF/native-image/com.xxxx.framework/yyyy-client/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar!/META-INF/native-image/io.grpc.netty.shaded.io.netty/codec-http/native-image.properties' does not match the recommended 'META-INF/native-image/com.xxxx.framework/yyyy-client/native-image.properties' layout.
[WARNING] Properties file at 'jar:file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar!/META-INF/native-image/io.grpc.netty.shaded.io.netty/codec-http2/native-image.properties' does not match the recommended 'META-INF/native-image/com.xxxx.framework/yyyy-client/native-image.properties' layout.
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.9.21]: Configuration directory not found. Trying latest version.
[INFO] [graalvm reachability metadata repository for org.jetbrains.kotlin:kotlin-stdlib:1.9.21]: Configuration directory is org.jetbrains.kotlin/kotlin-stdlib/1.7.10
[INFO] Executing: /home/ch3cho/.sdkman/candidates/java/current/bin/native-image -cp /home/ch3cho/TestProjects/flightapp/target/classes:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.2.1/spring-boot-starter-web-3.2.1.jar:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot-starter/3.2.1/spring-boot-starter-3.2.1.jar:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot/3.2.1/spring-boot-3.2.1.jar:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.2.1/spring-boot-autoconfigure-3.2.1.jar:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.2.1/spring-boot-starter-logging-3.2.1.jar:/home/ch3cho/.m2/repository/ch/qos/logback/logback-classic/1.4.14/logback-classic-1.4.14.jar:/home/ch3cho/.m2/repository/ch/qos/logback/logback-core/1.4.14/logback-core-1.4.14.jar:/home/ch3cho/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.21.1/log4j-to-slf4j-2.21.1.jar:/home/ch3cho/.m2/repository/org/apache/logging/log4j/log4j-api/2.21.1/log4j-api-2.21.1.jar:/home/ch3cho/.m2/repository/org/slf4j/jul-to-slf4j/2.0.9/jul-to-slf4j-2.0.9.jar:/home/ch3cho/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/home/ch3cho/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.2.1/spring-boot-starter-json-3.2.1.jar:/home/ch3cho/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.15.3/jackson-databind-2.15.3.jar:/home/ch3cho/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.3/jackson-annotations-2.15.3.jar:/home/ch3cho/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.3/jackson-core-2.15.3.jar:/home/ch3cho/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.15.3/jackson-datatype-jdk8-2.15.3.jar:/home/ch3cho/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.3/jackson-datatype-jsr310-2.15.3.jar:/home/ch3cho/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.15.3/jackson-module-parameter-names-2.15.3.jar:/home/ch3cho/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.2.1/spring-boot-starter-tomcat-3.2.1.jar:/home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.17/tomcat-embed-core-10.1.17.jar:/home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.17/tomcat-embed-el-10.1.17.jar:/home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.17/tomcat-embed-websocket-10.1.17.jar:/home/ch3cho/.m2/repository/org/springframework/spring-web/6.1.2/spring-web-6.1.2.jar:/home/ch3cho/.m2/repository/org/springframework/spring-beans/6.1.2/spring-beans-6.1.2.jar:/home/ch3cho/.m2/repository/io/micrometer/micrometer-observation/1.12.1/micrometer-observation-1.12.1.jar:/home/ch3cho/.m2/repository/io/micrometer/micrometer-commons/1.12.1/micrometer-commons-1.12.1.jar:/home/ch3cho/.m2/repository/org/springframework/spring-webmvc/6.1.2/spring-webmvc-6.1.2.jar:/home/ch3cho/.m2/repository/org/springframework/spring-aop/6.1.2/spring-aop-6.1.2.jar:/home/ch3cho/.m2/repository/org/springframework/spring-context/6.1.2/spring-context-6.1.2.jar:/home/ch3cho/.m2/repository/org/springframework/spring-expression/6.1.2/spring-expression-6.1.2.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/fx-spring-boot-starter-monitor/0.0.2/fx-spring-boot-starter-monitor-0.0.2.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/fx-spring-boot/0.0.2/fx-spring-boot-0.0.2.jar:/home/ch3cho/.m2/repository/com/dianping/cat/cat-client/3.5.19-Java21/cat-client-3.5.19-Java21.jar:/home/ch3cho/.m2/repository/com/dianping/cat/cat-exporter/3.5.19-Java21/cat-exporter-3.5.19-Java21.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/framework-foundation/1.8.25-Java21/framework-foundation-1.8.25-Java21.jar:/home/ch3cho/.m2/repository/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:/home/ch3cho/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/home/ch3cho/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/home/ch3cho/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/home/ch3cho/.m2/repository/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar:/home/ch3cho/.m2/repository/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar:/home/ch3cho/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar:/home/ch3cho/.m2/repository/io/netty/netty-all/4.1.104.Final/netty-all-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-buffer/4.1.104.Final/netty-buffer-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec/4.1.104.Final/netty-codec-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-dns/4.1.104.Final/netty-codec-dns-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-haproxy/4.1.104.Final/netty-codec-haproxy-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-http/4.1.104.Final/netty-codec-http-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-http2/4.1.104.Final/netty-codec-http2-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-memcache/4.1.104.Final/netty-codec-memcache-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-mqtt/4.1.104.Final/netty-codec-mqtt-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-redis/4.1.104.Final/netty-codec-redis-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-smtp/4.1.104.Final/netty-codec-smtp-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-socks/4.1.104.Final/netty-codec-socks-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-stomp/4.1.104.Final/netty-codec-stomp-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-codec-xml/4.1.104.Final/netty-codec-xml-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-common/4.1.104.Final/netty-common-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-handler/4.1.104.Final/netty-handler-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.104.Final/netty-transport-native-unix-common-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-handler-proxy/4.1.104.Final/netty-handler-proxy-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-handler-ssl-ocsp/4.1.104.Final/netty-handler-ssl-ocsp-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-resolver/4.1.104.Final/netty-resolver-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-resolver-dns/4.1.104.Final/netty-resolver-dns-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport/4.1.104.Final/netty-transport-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-rxtx/4.1.104.Final/netty-transport-rxtx-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-sctp/4.1.104.Final/netty-transport-sctp-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-udt/4.1.104.Final/netty-transport-udt-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.104.Final/netty-transport-classes-epoll-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-classes-kqueue/4.1.104.Final/netty-transport-classes-kqueue-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-resolver-dns-classes-macos/4.1.104.Final/netty-resolver-dns-classes-macos-4.1.104.Final.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-native-epoll/4.1.104.Final/netty-transport-native-epoll-4.1.104.Final-linux-x86_64.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-native-epoll/4.1.104.Final/netty-transport-native-epoll-4.1.104.Final-linux-aarch_64.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-native-epoll/4.1.104.Final/netty-transport-native-epoll-4.1.104.Final-linux-riscv64.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.104.Final/netty-transport-native-kqueue-4.1.104.Final-osx-x86_64.jar:/home/ch3cho/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.104.Final/netty-transport-native-kqueue-4.1.104.Final-osx-aarch_64.jar:/home/ch3cho/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.104.Final/netty-resolver-dns-native-macos-4.1.104.Final-osx-x86_64.jar:/home/ch3cho/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.104.Final/netty-resolver-dns-native-macos-4.1.104.Final-osx-aarch_64.jar:/home/ch3cho/.m2/repository/org/slf4j/jcl-over-slf4j/2.0.9/jcl-over-slf4j-2.0.9.jar:/home/ch3cho/.m2/repository/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar:/home/ch3cho/.m2/repository/org/xerial/snappy/snappy-java/1.1.10.3/snappy-java-1.1.10.3.jar:/home/ch3cho/.m2/repository/com/dianping/cat/kafka/kafka-clients/1.1.1-xxxx.1/kafka-clients-1.1.1-xxxx.1.jar:/home/ch3cho/.m2/repository/org/aspectj/aspectjweaver/1.9.21/aspectjweaver-1.9.21.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar:/home/ch3cho/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar:/home/ch3cho/.m2/repository/com/xxxx/ops/hickwall-sdk/0.1.16/hickwall-sdk-0.1.16.jar:/home/ch3cho/.m2/repository/org/influxdb/influxdb-java/2.23/influxdb-java-2.23.jar:/home/ch3cho/.m2/repository/com/squareup/retrofit2/retrofit/2.9.0/retrofit-2.9.0.jar:/home/ch3cho/.m2/repository/com/squareup/retrofit2/converter-moshi/2.9.0/converter-moshi-2.9.0.jar:/home/ch3cho/.m2/repository/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar:/home/ch3cho/.m2/repository/org/msgpack/msgpack-core/0.9.3/msgpack-core-0.9.3.jar:/home/ch3cho/.m2/repository/com/squareup/okhttp3/logging-interceptor/4.12.0/logging-interceptor-4.12.0.jar:/home/ch3cho/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.jar:/home/ch3cho/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.jar:/home/ch3cho/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/home/ch3cho/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.jar:/home/ch3cho/.m2/repository/com/squareup/okio/okio/1.17.2/okio-1.17.2.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/vi/0.11.65-Java21/vi-0.11.65-Java21.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/vi-core/0.11.65-Java21/vi-core-0.11.65-Java21.jar:/home/ch3cho/.m2/repository/org/javassist/javassist/3.29.2-GA/javassist-3.29.2-GA.jar:/home/ch3cho/.m2/repository/qunar/tc/qtracer/qtracer-standalone-debugger/1.4.14/qtracer-standalone-debugger-1.4.14.jar:/home/ch3cho/.m2/repository/qunar/tc/qtracer/qtracer-instrument-asm/1.4.14/qtracer-instrument-asm-1.4.14.jar:/home/ch3cho/.m2/repository/com/xxxx/framework/fx-spring-boot-starter-native/0.0.2/fx-spring-boot-starter-native-0.0.2.jar:/home/ch3cho/.m2/repository/commons-io/commons-io/2.13.0/commons-io-2.13.0.jar:/home/ch3cho/.m2/repository/org/springframework/spring-core/6.1.2/spring-core-6.1.2.jar --no-fallback -o /home/ch3cho/TestProjects/flightapp/target/application -H:ConfigurationFileDirectories=/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/org.jetbrains.kotlin/kotlin-stdlib/1.7.10,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/com.fasterxml.jackson.core/jackson-databind/2.15.2,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-buffer/4.1.80.Final,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-transport/4.1.80.Final,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/org.apache.tomcat.embed/tomcat-embed-core/10.0.20,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-codec-http/4.1.80.Final,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-handler/4.1.80.Final,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-codec-http2/4.1.80.Final,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-common/4.1.80.Final,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/ch.qos.logback/logback-classic/1.4.1,/home/ch3cho/TestProjects/flightapp/target/graalvm-reachability-metadata/398703dc55b30fdcc52be5738b99125a2dfe365b/io.netty/netty-resolver-dns/4.1.80.Final -march=x86-64-v2 --add-opens java.management/sun.management=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/sun.reflect.annotation=ALL-UNNAMED --add-opens java.base/java.math=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/sun.util.calendar=ALL-UNNAMED --add-opens java.base/sun.util.calendar=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp.datatype=ALL-UNNAMED --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-buffer/4.1.104.Final/netty-buffer-4.1.104.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-codec-http/4.1.104.Final/netty-codec-http-4.1.104.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-codec-http2/4.1.104.Final/netty-codec-http2-4.1.104.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-common/4.1.104.Final/netty-common-4.1.104.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-handler/4.1.104.Final/netty-handler-4.1.104.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-resolver-dns/4.1.104.Final/netty-resolver-dns-4.1.104.Final.jar\E ^/META-INF/native-image/ --exclude-config \Q/home/ch3cho/.m2/repository/io/netty/netty-transport/4.1.104.Final/netty-transport-4.1.104.Final.jar\E ^/META-INF/native-image/ com.xxxx.testapp.AppSpringBootConfiguration
Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/io.grpc.netty.shaded.io.netty/transport/reflection-config.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-websocket/tomcat-reflection.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-el/tomcat-reflection.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ResourceConfigurationResources=META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-core/tomcat-resource.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-core/tomcat-reflection.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ResourceConfigurationResources=META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-el/tomcat-resource.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ResourceConfigurationResources=META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-websocket/tomcat-resource.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
========================================================================================================================
GraalVM Native Image: Generating 'application' (executable)...
========================================================================================================================
[1/8] Initializing...                                                                                   (13.9s @ 0.26GB)
 Java version: 21.0.2+13-LTS, vendor version: Oracle GraalVM 21.0.2+13.1
 Graal compiler: optimization level: 2, target machine: x86-64-v2, PGO: ML-inferred
 C compiler: gcc (linux, x86_64, 8.3.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 2 user-specific feature(s):
 - com.oracle.svm.thirdparty.gson.GsonFeature
 - org.springframework.aot.nativex.feature.PreComputeFieldFeature
------------------------------------------------------------------------------------------------------------------------
 2 experimental option(s) unlocked:
 - '-H:ResourceConfigurationResources' (origin(s): 'META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-core/native-image.properties' in 'file:///home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.17/tomcat-embed-core-10.1.17.jar', 'META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-el/native-image.properties' in 'file:///home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.17/tomcat-embed-el-10.1.17.jar', 'META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-websocket/native-image.properties' in 'file:///home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.17/tomcat-embed-websocket-10.1.17.jar')
 - '-H:ReflectionConfigurationResources' (origin(s): 'META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-core/native-image.properties' in 'file:///home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.17/tomcat-embed-core-10.1.17.jar', 'META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-el/native-image.properties' in 'file:///home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.17/tomcat-embed-el-10.1.17.jar', 'META-INF/native-image/org.apache.tomcat.embed/tomcat-embed-websocket/native-image.properties' in 'file:///home/ch3cho/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.17/tomcat-embed-websocket-10.1.17.jar', 'META-INF/native-image/io.grpc.netty.shaded.io.netty/transport/native-image.properties' in 'file:///home/ch3cho/.m2/repository/com/xxxx/framework/yyyy-client/0.0.63-Java21/yyyy-client-0.0.63-Java21.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 10.16GB of memory (28.9% of 35.14GB system memory, determined at start)
 - 16 thread(s) (100.0% of 16 available processor(s), determined at start)
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
[2/8] Performing analysis...  [******]                                                                  (74.5s @ 2.03GB)
   24,297 reachable types   (89.6% of   27,111 total)
   41,288 reachable fields  (61.8% of   66,774 total)
  135,173 reachable methods (63.3% of  213,636 total)
    7,810 types,   852 fields, and 8,519 methods registered for reflection
       87 types,    88 fields, and    64 methods registered for JNI access
        4 native libraries: dl, pthread, rt, z
[3/8] Building universe...                                                                              (14.0s @ 2.28GB)
[4/8] Parsing methods...      [*****]                                                                   (23.3s @ 1.99GB)
[5/8] Inlining methods...     [***]                                                                      (2.8s @ 2.99GB)

=== Image generator watchdog detected no activity. This can be a sign of a deadlock during image building. Dumping all stack traces. Current time: Tue Apr 02 16:11:04 GMT+08:00 2024
"main" Id=1 in TIMED_WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
    at [email protected]/java.util.concurrent.ForkJoinPool.externalHelpQuiesce(ForkJoinPool.java:2274)
    at [email protected]/java.util.concurrent.ForkJoinPool.helpQuiescePool(ForkJoinPool.java:2297)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:3565)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.complete(CompletionExecutor.java:237)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.runOnExecutor(CompileQueue.java:603)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.compileAll(CompileQueue.java:913)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.finish(CompileQueue.java:433)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:673)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:550)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:539)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:721)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:143)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:98)

"Reference Handler" Id=5 in RUNNABLE
    at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
    at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:246)
    at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:208)

"Finalizer" Id=6 in WAITING on lock=java.lang.ref.NativeReferenceQueue$Lock@127010e3
    at [email protected]/java.lang.Object.wait0(Native Method)
    at [email protected]/java.lang.Object.wait(Object.java:366)
    at [email protected]/java.lang.Object.wait(Object.java:339)
    at [email protected]/java.lang.ref.NativeReferenceQueue.await(NativeReferenceQueue.java:48)
    at [email protected]/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:158)
    at [email protected]/java.lang.ref.NativeReferenceQueue.remove(NativeReferenceQueue.java:89)
    at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:173)

"Signal Dispatcher" Id=7 in RUNNABLE

"JVMCI-native CompilerThread0" Id=10 in RUNNABLE

"Common-Cleaner" Id=20 in TIMED_WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1888d793
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
    at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1847)
    at [email protected]/java.lang.ref.ReferenceQueue.await(ReferenceQueue.java:71)
    at [email protected]/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:143)
    at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:218)
    at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)
    at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)

"Notification Thread" Id=21 in RUNNABLE

"native-image pid watcher" Id=22 in TIMED_WAITING on lock=java.util.TaskQueue@23a88580
    at [email protected]/java.lang.Object.wait0(Native Method)
    at [email protected]/java.lang.Object.wait(Object.java:366)
    at [email protected]/java.util.TimerThread.mainLoop(Timer.java:563)
    at [email protected]/java.util.TimerThread.run(Timer.java:516)

"Thread-1" Id=25 in RUNNABLE
    at [email protected]/sun.management.ThreadImpl.dumpThreads0(Native Method)
    at [email protected]/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:518)
    at [email protected]/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:506)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.DeadlockWatchdog.threadDump(DeadlockWatchdog.java:125)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.DeadlockWatchdog.watchdogThread(DeadlockWatchdog.java:82)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.DeadlockWatchdog$$Lambda/0x00000007c01d0788.run(Unknown Source)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)

"ForkJoinPool.commonPool-worker-1" Id=49 in WAITING on lock=java.util.concurrent.ForkJoinPool@3c7a21cb
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool.commonPool-worker-6" Id=54 in WAITING on lock=java.util.concurrent.ForkJoinPool@3c7a21cb
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool.commonPool-worker-14" Id=62 in TIMED_WAITING on lock=java.util.concurrent.ForkJoinPool@3c7a21cb
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:449)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1891)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"Read-Poller" Id=67 in RUNNABLE (running in native)
    at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
    at [email protected]/sun.nio.ch.EPollPoller.poll(EPollPoller.java:71)
    at [email protected]/sun.nio.ch.Poller.poll(Poller.java:363)
    at [email protected]/sun.nio.ch.Poller.pollLoop(Poller.java:270)
    at [email protected]/sun.nio.ch.Poller$$Lambda/0x00000007c2051fc0.run(Unknown Source)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)
    at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)

"Read-Updater" Id=68 in WAITING on lock=java.util.concurrent.LinkedTransferQueue@60ba1c50
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:458)
    at [email protected]/java.util.concurrent.LinkedTransferQueue.xfer(LinkedTransferQueue.java:613)
    at [email protected]/java.util.concurrent.LinkedTransferQueue.take(LinkedTransferQueue.java:1252)
    at [email protected]/sun.nio.ch.Poller.updateLoop(Poller.java:286)
    at [email protected]/sun.nio.ch.Poller$$Lambda/0x00000007c2052400.run(Unknown Source)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)
    at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)

"Write-Poller" Id=69 in RUNNABLE (running in native)
    at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
    at [email protected]/sun.nio.ch.EPollPoller.poll(EPollPoller.java:71)
    at [email protected]/sun.nio.ch.Poller.poll(Poller.java:363)
    at [email protected]/sun.nio.ch.Poller.pollLoop(Poller.java:270)
    at [email protected]/sun.nio.ch.Poller$$Lambda/0x00000007c2051fc0.run(Unknown Source)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)
    at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)

"Write-Updater" Id=70 in WAITING on lock=java.util.concurrent.LinkedTransferQueue@725fefac
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:458)
    at [email protected]/java.util.concurrent.LinkedTransferQueue.xfer(LinkedTransferQueue.java:613)
    at [email protected]/java.util.concurrent.LinkedTransferQueue.take(LinkedTransferQueue.java:1252)
    at [email protected]/sun.nio.ch.Poller.updateLoop(Poller.java:286)
    at [email protected]/sun.nio.ch.Poller$$Lambda/0x00000007c2052400.run(Unknown Source)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)
    at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)

"Timer-0" Id=75 in TIMED_WAITING on lock=java.util.TaskQueue@2cb59a3b
    at [email protected]/java.lang.Object.wait0(Native Method)
    at [email protected]/java.lang.Object.wait(Object.java:366)
    at [email protected]/java.util.TimerThread.mainLoop(Timer.java:563)
    at [email protected]/java.util.TimerThread.run(Timer.java:516)

"ForkJoinPool-2-worker-4" Id=80 in WAITING on lock=java.util.concurrent.ForkJoinPool@4b568ea8
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-2-worker-15" Id=91 in TIMED_WAITING on lock=java.util.concurrent.ForkJoinPool@4b568ea8
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:449)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1891)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"pool-1-thread-1" Id=108 in TIMED_WAITING on lock=java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7bbe530e
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)
    at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1758)
    at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)
    at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
    at [email protected]/java.lang.Thread.run(Thread.java:1583)

"ForkJoinPool-3-worker-1" Id=109 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-2" Id=110 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-3" Id=111 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-4" Id=112 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-5" Id=113 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-7" Id=115 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-8" Id=116 in RUNNABLE
    at app/org.graalvm.collections/org.graalvm.collections.EconomicMapImpl.findHash(EconomicMapImpl.java:292)
    at app/org.graalvm.collections/org.graalvm.collections.EconomicMapImpl.find(EconomicMapImpl.java:253)
    at app/org.graalvm.collections/org.graalvm.collections.EconomicMapImpl.get(EconomicMapImpl.java:244)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.InterproceduralPartialEscapeAnalysisPhase$a.a(stripped:241)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:140)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:85)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d$$Lambda/0x00000007c29ad670.accept(Unknown Source)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.nodes.a.c(stripped:452)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:76)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.SubstratePolicyFactory$a.a(stripped:150)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.d.a(stripped:71)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase$a.d(stripped:582)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase$a.c(stripped:537)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase.d(stripped:474)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase.a(stripped:469)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.SubstratePriorityInliningPhase.a(stripped:191)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.SubstratePriorityInliningPhase.run(stripped:76)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:434)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:322)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:390)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:434)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:322)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.emitFrontEnd(GraalCompiler.java:294)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compile(GraalCompiler.java:169)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compileGraph(GraalCompiler.java:137)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.defaultCompileFunction(CompileQueue.java:1310)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue$$Lambda/0x00000007c2aae408.compile(Unknown Source)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.doCompile(CompileQueue.java:1258)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue$CompileTask.run(CompileQueue.java:306)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:187)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:171)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor$$Lambda/0x00000007c238d648.run(Unknown Source)
    at [email protected]/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
    at [email protected]/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at [email protected]/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
    at [email protected]/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-6" Id=114 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-9" Id=117 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-10" Id=118 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-11" Id=119 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-12" Id=120 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-13" Id=121 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-14" Id=122 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

"ForkJoinPool-3-worker-15" Id=123 in WAITING on lock=java.util.concurrent.ForkJoinPool@57728469
    at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
    at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
    at [email protected]/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1893)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1809)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)


=== Memory statistics (in MB):
=== Used heap size: 4290
=== Free heap size: 1765
=== Maximum heap size: 10404
=== Image generator watchdog is aborting image generation. To configure the watchdog, use the options -H:DeadlockWatchdogInterval=10 and -H:+DeadlockWatchdogExitOnTimeout
Error: Image build request for 'application' (pid: 90095, path: /home/ch3cho/TestProjects/flightapp/target) failed with exit status 30

CH3CHO avatar Apr 02 '24 11:04 CH3CHO

This issue seems to be related to this one https://github.com/oracle/graal/issues/4822, so I will ask the same question posted there:

What was your working directory and how many subfolders does it contain? Native Image scans all the folders in the current working directory to find classes that should be on the classpath. If this folder is large, especially on network drives, this can take some time. This behavior is going to change in the future, but it requires significant changes to the image builder.

Is this your case? There is already a fix for the ticket I shared before. But I think is important to see if this is a similar scenario.

fernando-valdez avatar Apr 03 '24 01:04 fernando-valdez

This issue seems to be related to this one #4822, so I will ask the same question posted there:

What was your working directory and how many subfolders does it contain? Native Image scans all the folders in the current working directory to find classes that should be on the classpath. If this folder is large, especially on network drives, this can take some time. This behavior is going to change in the future, but it requires significant changes to the image builder.

Is this your case? There is already a fix for the ticket I shared before. But I think is important to see if this is a similar scenario.

It is a single-module maven project, so the structure is very simple. And I use the following command for building: mvn clean package native:compile-no-fork -P native -Dmaven.test.skip=true -U

Project structure:

.
├── mvnw
├── mvnw.cmd
├── native-deadlock.log
├── pom.xml
├── README.md
├── src
│   └── main
│       ├── java
│       │   └── com
│       │       └── xxxx
│       │           └── yyyy
│       │               └── testapp
│       │                   ├── AppSpringBootConfiguration.java
│       │                   ├── HomeController.java
│       │                   └── ServletInitializer.java
│       └── resources
│           ├── application.properties
│           ├── logback.xml
│           └── META-INF
│               └── app.properties
└── tree.txt

CH3CHO avatar Apr 03 '24 01:04 CH3CHO

is there a way you can create a minimal version of the project that can produce the same error?

fernando-valdez avatar Apr 03 '24 02:04 fernando-valdez

I just found that after excluding an internal runtime dependency which depends on javaassist and objectasm (not sure if they are related), building process can complete successfully. However, since it's an internal library, I'm unable to share it here. But is it anyway to debug the building process, or see where does it get stuck?

And I'm using Oracle GraalVM now, because we need to use G1 GC. Should I try GraalCE to see if the problem is reproducible?

CH3CHO avatar Apr 03 '24 02:04 CH3CHO

You can use the debugging tools explained here: https://www.graalvm.org/latest/reference-manual/native-image/debugging-and-diagnostics/DebugInfo/ Feel free to check if the problem persists in CE, if that is not the case, then we can reduce the scope of the issue to only Oracle GraalVM

fernando-valdez avatar Apr 03 '24 02:04 fernando-valdez

, then we can reduce the scope of the issue to only Oracle GraalVM

Thanks for your help, Fernando.

I tried with GraalCE, and it worked normally.

❯ java -version
openjdk version "21.0.2" 2024-01-16
OpenJDK Runtime Environment GraalVM CE 21.0.2+13.1 (build 21.0.2+13-jvmci-23.1-b30)
OpenJDK 64-Bit Server VM GraalVM CE 21.0.2+13.1 (build 21.0.2+13-jvmci-23.1-b30, mixed mode, sharing)

However, the link you shared above seems to be related to "adding debug information to a generated native image". I'm not sure if it is helpful to this issue. And I will try to find if there is any verbose or debug flag in the native-image executable.

CH3CHO avatar Apr 03 '24 02:04 CH3CHO

Just excluding org.javassist:javassist can make it work. However, upgrading it to the latest version of 3.30.2-GA doesn't.

I also tried to add --diagnostics-mode --verbose --native-image-info arguments to native-image, but it looks like nothing more is output to the console.

In addition, it seems that only one thread in the ForkJoinPool is running during the building process. Does the following stacktrace ring a bell?

"ForkJoinPool-3-worker-8" Id=116 in RUNNABLE
    at app/org.graalvm.collections/org.graalvm.collections.EconomicMapImpl.findHash(EconomicMapImpl.java:292)
    at app/org.graalvm.collections/org.graalvm.collections.EconomicMapImpl.find(EconomicMapImpl.java:253)
    at app/org.graalvm.collections/org.graalvm.collections.EconomicMapImpl.get(EconomicMapImpl.java:244)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.InterproceduralPartialEscapeAnalysisPhase$a.a(stripped:241)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:140)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:147)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:85)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d$$Lambda/0x00000007c29ad670.accept(Unknown Source)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.nodes.a.c(stripped:452)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.d.a(stripped:76)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.SubstratePolicyFactory$a.a(stripped:150)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.d.a(stripped:71)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase$a.d(stripped:582)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase$a.c(stripped:537)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase.d(stripped:474)
    at app/com.oracle.graal.graal_enterprise/com.oracle.graal.phases.preciseinline.priorityinline.PriorityInliningPhase.a(stripped:469)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.SubstratePriorityInliningPhase.a(stripped:191)
    at app/com.oracle.svm.svm_enterprise/com.oracle.svm.enterprise.hosted.phases.priorityinline.SubstratePriorityInliningPhase.run(stripped:76)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:434)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:322)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:390)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:434)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:322)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.emitFrontEnd(GraalCompiler.java:294)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compile(GraalCompiler.java:169)
    at platform/jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compileGraph(GraalCompiler.java:137)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.defaultCompileFunction(CompileQueue.java:1310)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue$$Lambda/0x00000007c2aae408.compile(Unknown Source)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue.doCompile(CompileQueue.java:1258)
    at app/org.graalvm.nativeimage.builder/com.oracle.svm.hosted.code.CompileQueue$CompileTask.run(CompileQueue.java:306)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:187)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:171)
    at app/org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor$$Lambda/0x00000007c238d648.run(Unknown Source)
    at [email protected]/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
    at [email protected]/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at [email protected]/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
    at [email protected]/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
    at [email protected]/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
    at [email protected]/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

CH3CHO avatar Apr 03 '24 04:04 CH3CHO

What happens if you use -H:-AOTPriorityInline to disable priority inlining?

fniephaus avatar Apr 03 '24 06:04 fniephaus

Luckily (or saddly), after I cleaned my local Maven cache, the whole build process worked as expected.

I will keep tracking this problem. If it doesn't re-occur this week. I will close this issue. Thanks for your help.

CH3CHO avatar Apr 03 '24 10:04 CH3CHO

-H:-AOTPriorityInline

The previous problem reoccurred today, and adding -H:-AOTPriorityInline fixed it. Thanks, @fniephaus . However, does this option affect the runtime performance of the built native executable?

CH3CHO avatar Apr 07 '24 08:04 CH3CHO

However, does this option affect the runtime performance of the built native executable?

Yes, it can affect the performance. I only suggested it as a workaround and to see whether it really is related to the priority inliner. Another test that shouldn't affect the performance as much is to use -H:-UseIPEA. Could you try whether that fixes your problem as well?

Nonetheless, it would be great if you could provide us with a reproducer so we can take a closer look at what's going wrong. Thanks!

fniephaus avatar Apr 07 '24 12:04 fniephaus

However, does this option affect the runtime performance of the built native executable?

Yes, it can affect the performance. I only suggested it as a workaround and to see whether it really is related to the priority inliner. Another test that shouldn't affect the performance as much is to use -H:-UseIPEA. Could you try whether that fixes your problem as well?

Nonetheless, it would be great if you could provide us with a reproducer so we can take a closer look at what's going wrong. Thanks!

Thanks. I will try -H:-UseIPEA. Since the cause is an internal library, I will see if I can remove all sensitive code and build a reproducer.

CH3CHO avatar Apr 07 '24 13:04 CH3CHO

-H:-UseIPEA works. I just check the documentation. It seems that UseIPEA is a sub-option of AOTPriorityInline. So are we narrowing the root cause?

CH3CHO avatar Apr 08 '24 01:04 CH3CHO

Here is a minimal reproducer, deadlock.zip. Please try the following steps to reproduce this issue:

cd deadlock-agent
./mvnw clean install -Dmaven.test.skip
cd ../deadlock-reproducer
./mvnw clean package native:compile-no-fork -P native -Dmaven.test.skip

CH3CHO avatar Apr 08 '24 10:04 CH3CHO

BTW, removing -march=x86-64-v2 from buildArgs can make it work.

CH3CHO avatar Apr 08 '24 10:04 CH3CHO

It seems that UseIPEA is a sub-option of AOTPriorityInline. So are we narrowing the root cause?

Yes, that is correct.

BTW, removing -march=x86-64-v2 from buildArgs can make it work.

That's weird because it's defaulting to x86-64-v3 which uses more CPU features.

Shouldn't this be:

              <buildArgs>
                <buildArg>-march=x86-64-v2</buildArg>
                <buildArg>--add-opens java.management/sun.management=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/java.lang=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/java.lang.reflect=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/sun.reflect.annotation=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/java.math=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/java.util=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/sun.util.calendar=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/sun.util.calendar=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/java.io=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.base/java.net=ALL-UNNAMED</buildArg>
                <buildArg>--add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp.datatype=ALL-UNNAMED</buildArg>
              </buildArgs>

fniephaus avatar Apr 08 '24 11:04 fniephaus

Oh, finally got the correct way of configuring multiple buildArgs....

Because some of our K8s nodes use a relatively old CPU architecture, we have to use v2, otherwise it won't work. And on my laptop with v3 support, using v3 can result a successful build, but using v2 can't.

CH3CHO avatar Apr 08 '24 11:04 CH3CHO

Because some of our K8s nodes use a relatively old CPU architecture, we have to use v2, otherwise it won't work. And on my laptop with v3 support, using v3 can result a successful build, but using v2 can't.

Also when you configure multiple buildArgs correctly?

fniephaus avatar Apr 08 '24 11:04 fniephaus

Also when you configure multiple buildArgs correctly?

No, it doesn't work, either.

image

And I tested all the -march options supported on my AMD64 laptop. The result is as follows:

<!-- Goods -->
<!--                <buildArg>-march=native</buildArg>-->
<!--                <buildArg>-march=haswell</buildArg>-->
<!--                <buildArg>-march=skylake</buildArg>-->
<!--                <buildArg>-march=skylake-avx512</buildArg>-->
<!--                <buildArg>-march=x86-64-v4</buildArg>-->
<!--                <buildArg>-march=x86-64-v3</buildArg>-->
<!-- Bads -->
<!--                <buildArg>-march=x86-64-v2</buildArg>-->
<!--                <buildArg>-march=x86-64-v1</buildArg>-->
<!--                <buildArg>-march=x86-64</buildArg>-->
<!--                <buildArg>-march=compatibility</buildArg>-->

-march=list result:

On AMD64, the following machine types are available:

'compatibility'
  CPU features: all of 'x86-64'
'haswell'
  CPU features: all of 'x86-64' + SSE3 + SSSE3 + SSE4_1 + SSE4_2 + POPCNT + LZCNT + AVX + AVX2 + AES + CLMUL + BMI1 + BMI2 + FMA
'native'
  CPU features: CX8 + CMOV + FXSR + HT + MMX + AMD_3DNOW_PREFETCH + SSE + SSE2 + SSE3 + SSSE3 + SSE4A + SSE4_1 + SSE4_2 + POPCNT + LZCNT + TSC + TSCINV_BIT + AVX + AVX2 + AES + CLMUL + BMI1 + BMI2 + ADX + SHA + FMA + VZEROUPPER + FLUSH + FLUSHOPT + RDTSCP + RDPID + F16C
'skylake'
  CPU features: all of 'haswell' + AMD_3DNOW_PREFETCH + ADX + FLUSHOPT
'skylake-avx512'
  CPU features: all of 'skylake' + AVX512F + AVX512DQ + AVX512CD + AVX512BW + AVX512VL + CLWB
'x86-64'
  CPU features: CX8 + CMOV + FXSR + MMX + SSE + SSE2
'x86-64-v1'
  CPU features: all of 'x86-64'
'x86-64-v2'
  CPU features: all of 'x86-64-v1' + SSE3 + SSSE3 + SSE4_1 + SSE4_2 + POPCNT
'x86-64-v3'
  CPU features: all of 'x86-64-v2' + LZCNT + AVX + AVX2 + BMI1 + BMI2 + FMA
'x86-64-v4'
  CPU features: all of 'x86-64-v3' + AVX512F + AVX512DQ + AVX512CD + AVX512BW + AVX512VL

CH3CHO avatar Apr 09 '24 02:04 CH3CHO

Hi guys, any new findings on this issue? Thanks.

CH3CHO avatar Apr 15 '24 03:04 CH3CHO

Update: It seems not to be related to the arch option. Adding several dependencies can also result in the same error.

CH3CHO avatar Apr 25 '24 07:04 CH3CHO