Karm / mandrel-integration-tests

Integration tests for GraalVM and its Mandrel distribution. Runs Quarkus, Helidon and Micronaut applications and small targeted reproducers. The focus is solely on native-image utility and compilation of Java applications into native executables.
Apache License 2.0
5 stars 3 forks source link

JFR integration tests fail with JDK 17.0.7+1-based Graal master build #139

Closed jerboaa closed 1 year ago

jerboaa commented 1 year ago

timezones and debug-symbols-smoke with --enable-monitoring=jfr fail with:

2023-02-16T03:27:04.9358818Z Command: native-image --enable-monitoring=jfr -jar target/timezones.jar target/timezones
2023-02-16T03:27:04.9359432Z 
2023-02-16T03:27:09.4276997Z ========================================================================================================================
2023-02-16T03:27:09.4277877Z GraalVM Native Image: Generating 'timezones' (executable)...
2023-02-16T03:27:09.4278331Z ========================================================================================================================
2023-02-16T03:27:10.4527777Z 
2023-02-16T03:27:10.4564916Z [1/8] Initializing...                                                                                    (0.0s @ 0.09GB)
2023-02-16T03:27:10.4577106Z Error: could not find target field: static java.lang.Object com.oracle.svm.core.jfr.Target_jdk_jfr_internal_JVM.FILE_DELTA_CHANGE
2023-02-16T03:27:10.4584027Z Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
jerboaa commented 1 year ago

Seems a JDK 17 related problem:

JDK 17-ea fails: See https://github.com/graalvm/mandrel/actions/runs/4189915476/jobs/7263054728#step:10:12279

JDK 20-ea succeeds: See https://github.com/graalvm/mandrel/actions/runs/4189915476/jobs/7263033652#step:10:12259

jerboaa commented 1 year ago

With stack trace reporting I see:

native-image --enable-monitoring=jfr -H:+ReportExceptionStackTraces -jar target/timezones.jar target/timezones
========================================================================================================================
GraalVM Native Image: Generating 'timezones' (executable)...
========================================================================================================================
[1/8] Initializing...
                                                                                    (0.0s @ 0.12GB)
Error: could not find target field: static java.lang.Object com.oracle.svm.core.jfr.Target_jdk_jfr_internal_JVM.FILE_DELTA_CHANGE
com.oracle.svm.core.util.UserError$UserException: could not find target field: static java.lang.Object com.oracle.svm.core.jfr.Target_jdk_jfr_internal_JVM.FILE_DELTA_CHANGE
    at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:73)
    at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.guarantee(UserError.java:97)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField(AnnotationSubstitutionProcessor.java:903)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleFieldInAliasClass(AnnotationSubstitutionProcessor.java:540)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAliasClass(AnnotationSubstitutionProcessor.java:432)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleClass(AnnotationSubstitutionProcessor.java:399)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.init(AnnotationSubstitutionProcessor.java:355)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.createAnnotationSubstitutionProcessor(NativeImageGenerator.java:1021)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:905)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:604)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:564)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:408)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:616)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:134)
    at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:94)
------------------------------------------------------------------------------------------------------------------------
                         0.1s (5.5% of total time) in 6 GCs | Peak RSS: 0.39GB | CPU load: 5.05
========================================================================================================================
Finished generating 'timezones' in 1.2s.
zakkak commented 1 year ago

FILE_DELTA_CHANGE got removed from Java 17 by https://bugs.openjdk.org/browse/JDK-8286707 starting with jdk-17.0.7+1

zakkak commented 1 year ago

Fix in https://github.com/oracle/graal/pull/6013 https://github.com/oracle/graal/pull/6041