quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.56k stars 2.63k forks source link

Native image build fails with `-Dquarkus.native.report-errors-at-runtime` #42228

Closed zakkak closed 1 week ago

zakkak commented 1 month ago

Describe the bug

Passing -Dquarkus.native.report-errors-at-runtime results in build failures in some cases.

Expected behavior

The build should succeed if it succeeds without -Dquarkus.native.report-errors-at-runtime

Actual behavior

The build fails with:

[1/8] Initializing...                                                                                    (0.0s @ 0.36GB)
------------------------------------------------------------------------------------------------------------------------
                        0.2s (6.8% of total time) in 12 GCs | Peak RSS: 1.04GB | CPU load: 8.60
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:
 /project/build-artifacts.json (build_info)
 /project/svm_err_b_20240730T180253.245_pid68.md (build_info)
========================================================================================================================
Failed generating 'quarkus-integration-test-main-999-SNAPSHOT-runner' after 2.1s.

The build process encountered an unexpected error:

java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexFormatTooOldException
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3578)
    at java.base/java.lang.Class.getDeclaredMethods(Class.java:2676)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleDeletedClass(AnnotationSubstitutionProcessor.java:642)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleClass(AnnotationSubstitutionProcessor.java:391)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.init(AnnotationSubstitutionProcessor.java:351)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.createAnnotationSubstitutionProcessor(NativeImageGenerator.java:1029)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:907)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:590)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:550)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:539)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:721)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:143)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:98)
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.index.IndexFormatTooOldException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageClassLoader.loadClass(NativeImageClassLoader.java:637)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
    ... 14 more

How to Reproduce?

./mvnw -Dnative -pl integration-tests/main -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests clean package -Dquarkus.native.report-errors-at-runtime

Output of uname -a or ver

Linux fedora 6.9.9-200.fc40.x86_64

Output of java -version

21.0.4+7-LTS

Mandrel or GraalVM version (if different from Java)

Mandrel-23.1.4.0-Final

Quarkus version or git rev

a02d772b89906bd6ad0e4ea12c670036d6280505

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

quarkus-bot[bot] commented 1 month ago

/cc @Karm (mandrel), @galderz (mandrel)

zakkak commented 2 weeks ago

Introduced by https://github.com/quarkusio/quarkus/pull/35296 in https://github.com/quarkusio/quarkus/pull/35296/commits/aa83e46d736fb9bb8fc2c3dafb53abdbc04fc106#diff-108c29091324b688e73c3a85be976cceb847e1dd5a8afe7968389af4a1f186f2