Skip to content

Merge upstream graalvm-community-jdk21u/master into mandrel/23.1 (2026-05-12)#971

Closed
Karm wants to merge 3 commits into
graalvm:mandrel/23.1from
Karm:sync-upstream-1778542846694
Closed

Merge upstream graalvm-community-jdk21u/master into mandrel/23.1 (2026-05-12)#971
Karm wants to merge 3 commits into
graalvm:mandrel/23.1from
Karm:sync-upstream-1778542846694

Conversation

@Karm
Copy link
Copy Markdown
Collaborator

@Karm Karm commented May 11, 2026

Merge upstream graalvm-community-jdk21u/master into mandrel/23.1 (2026-05-12)

This is a merge from upstream which includes the following upstream changes:

Karm added 3 commits April 14, 2026 12:17
…66602

Unmark suite files and bump version to 23.1.12 [skip ci]
…6-05-12)

This is a merge from upstream which includes the following upstream changes:
* graalvm/graalvm-community-jdk21u#278
@Karm Karm requested review from galderz, jerboaa and zakkak May 11, 2026 23:41
@Karm Karm self-assigned this May 11, 2026
@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label May 11, 2026
@Karm
Copy link
Copy Markdown
Collaborator Author

Karm commented May 12, 2026

Observability build failure:

Somewhat rings a bell, wasn't there a breaking change in the main for Mandrel 21 compatibility?

========================================================================================================================
GraalVM Native Image: Generating 'quarkus-integration-test-micrometer-opentelemetry-999-SNAPSHOT-runner' (executable)...
========================================================================================================================
For detailed information and explanations on the build output, visit:
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
------------------------------------------------------------------------------------------------------------------------
[1/8] Initializing...                                                                                    (8.4s @ 0.17GB)
 Java version: 21.0.12-beta+1-ea, vendor version: Mandrel-23.1.12.0-dev046da8b1
 Graal compiler: optimization level: 2, target machine: x86-64-v3
 C compiler: gcc (linux, x86_64, 13.3.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 7 user-specific feature(s):
 - com.oracle.svm.thirdparty.gson.GsonFeature
 - io.quarkus.jackson.runtime.graal.JacksonSerializerRegistrationFeature: Conditionally registers Jackson SQL/XML serializers for reflection based on reachability
 - io.quarkus.opentelemetry.runtime.graal.UnsignedFeature
 - io.quarkus.runner.Feature: Auto-generated class by Quarkus from the existing extensions
 - io.quarkus.runtime.graal.DisableLoggingFeature: Adapts logging during the analysis phase
 - io.quarkus.runtime.graal.JVMChecksFeature
 - io.quarkus.runtime.graal.SkipConsoleServiceProvidersFeature: Skip unsupported console service providers when quarkus.native.auto-service-loader-registration is false
------------------------------------------------------------------------------------------------------------------------
 5 experimental option(s) unlocked:
 - '-H:+AllowFoldMethods' (origin(s): command line)
 - '-H:BuildOutputJSONFile' (origin(s): command line)
 - '-H:-UseServiceLoaderFeature' (origin(s): command line)
 - '-H:+GenerateBuildArtifactsFile' (origin(s): command line)
 - '-H:AddOpens' (alternative API option(s): --add-opens java.base/java.lang=ALL-UNNAMED; origin(s): command line)
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 11.56GB of memory (74.0% of 15.61GB system memory, set via '-Xmx13g')
 - 4 thread(s) (100.0% of 4 available processor(s), determined at start)
java.lang.ClassNotFoundException: io.opentelemetry.instrumentation.runtimemetrics.java8.internal.CpuMethods
	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)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:536)
	at java.base/java.lang.Class.forName(Class.java:515)
	at io.quarkus.runner.Feature.beforeAnalysis(Unknown Source)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$9(NativeImageGenerator.java:773)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FeatureHandler.forEachFeature(FeatureHandler.java:90)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:773)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:592)
	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:538)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:727)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:142)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:97)
[2/8] Performing analysis...  [*****]                                                                   (77.8s @ 1.65GB)
   17,695 reachable types   (89.3% of   19,806 total)
   26,561 reachable fields  (62.2% of   42,709 total)
   95,787 reachable methods (61.4% of  156,004 total)
    5,635 types, 1,900 fields, and 15,253 methods registered for reflection
       62 types,    67 fields, and    55 methods registered for JNI access
        4 native libraries: dl, pthread, rt, z

Error: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95) reachable via the parsing context
    at static root method.(Unknown Source)


Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95) reachable via the parsing context
    at static root method.(Unknown Source)


	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:809)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:592)
	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:538)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:727)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:142)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:97)
Internal exception: com.oracle.svm.core.util.UserError$UserException: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95) reachable via the parsing context
    at static root method.(Unknown Source)


	at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:85)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:248)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:814)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:592)
	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:538)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:727)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:142)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:97)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 3 methods
Detailed message:
Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6f1d82c: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.systemCpuUtilization(CpuMethods.java:99) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@49a48e97: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuTime(CpuMethods.java:91) reachable via the parsing context
    at static root method.(Unknown Source)

Error: An object of type 'com.sun.management.internal.OperatingSystemImpl' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default.
This is not allowed for correctness reasons: All objects that are stored in the image heap must be initialized at build time.

You now have two options to resolve this:

1) If it is intended that objects of type 'com.sun.management.internal.OperatingSystemImpl' are persisted in the image heap, add 

    '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl'

to the native-image arguments. Note that initializing new types can store additional objects to the heap. It is advised to check the static fields of 'com.sun.management.internal.OperatingSystemImpl' to see if they are safe for build-time initialization,  and that they do not contain any sensitive data that should not become part of the image.

2) If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=com.sun.management.internal.OperatingSystemImpl'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.

If you are seeing this message after enabling '--strict-image-heap', this means that some objects ended up in the image heap without their type being marked with --initialize-at-build-time.
To fix this, include '--initialize-at-build-time=com.sun.management.internal.OperatingSystemImpl' in your configuration. If the classes do not originate from your code, it is advised to update all library or framework dependencies to the latest version before addressing this error.
Please address this problem to be prepared for future releases of GraalVM.

The following detailed trace displays from which field in the code the object was reached.
Trace: Object was reached by
  reading field io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0.arg$3 of constant 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x...
  scanning root io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x5a3a1f1364dd69da17c749dcd90830c6ce62b73b0@6557d5cc: io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods$$Lambda/0x... embedded in 
    io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95)
  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95) reachable via the parsing context
    at static root method.(Unknown Source)


	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:809)
	... 6 more
------------------------------------------------------------------------------------------------------------------------
                        7.6s (8.7% of total time) in 562 GCs | Peak RSS: 2.32GB | CPU load: 3.64
========================================================================================================================
Finished generating 'quarkus-integration-test-micrometer-opentelemetry-999-SNAPSHOT-runner' in 1m 26s.

@jerboaa
Copy link
Copy Markdown
Collaborator

jerboaa commented May 12, 2026

quarkus main with mandrel for JDK 21 is best-effort support. Not sure if it's worth CI testing it on the PR. Since this is a only a version bump, I doubt it's causing this test failure. Then again, it's one of the first CI runs with an 21.0.12+1 build, so we should perhaps investigate if we see it repeatedly fail.

Copy link
Copy Markdown
Collaborator

@jerboaa jerboaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Comment thread wasm/mx.wasm/suite.py
"groupId" : "org.graalvm.wasm",
"version" : "23.1.11.0",
"version" : "23.1.12.0",
"release" : False,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably prevent the script from adding "release" entries when not present.

Suggested change
"release" : False,

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zakkak Ouch. Right. That's not correct.

@jerboaa jerboaa added this to the 23.1.12.0 milestone May 12, 2026
@Karm
Copy link
Copy Markdown
Collaborator Author

Karm commented May 12, 2026

@jerboaa jerboaa added this to the 23.1.12.0 milestone

So this is something the script could do too for these sync PRs. I'm gonna update it.

@jerboaa
Copy link
Copy Markdown
Collaborator

jerboaa commented May 12, 2026

quarkus main with mandrel for JDK 21 is best-effort support. Not sure if it's worth CI testing it on the PR. Since this is a only a version bump, I doubt it's causing this test failure. Then again, it's one of the first CI runs with an 21.0.12+1 build, so we should perhaps investigate if we see it repeatedly fail.

On second thought there seems something wrong on the quarkus side:

GraalVM for JDK 21 has this:

  parsing method io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods.processCpuUtilization(CpuMethods.java:95) reachable via the parsing context
    at static root method.(Unknown Source)

Note the io.opentelemetry.instrumentation.runtimetelemetry.internal.CpuMethods class name. While in quarkus main we have this in the MetricProcessor class:

    @BuildStep
    void runtimeInit(BuildProducer<RuntimeInitializedClassBuildItem> runtimeReinitialized) {
        runtimeReinitialized.produce(
                new RuntimeInitializedClassBuildItem(
                        "io.opentelemetry.instrumentation.runtimemetrics.java8.internal.CpuMethods"));
    }

The class name seems wrong (extraneous java8).

@jerboaa
Copy link
Copy Markdown
Collaborator

jerboaa commented May 12, 2026

quarkusio/quarkus#54140 should fix the Otel issue.

@Karm
Copy link
Copy Markdown
Collaborator Author

Karm commented May 12, 2026

I'm closing this one so as a fixed one could be opened by The script.

@Karm Karm closed this May 12, 2026
@jerboaa jerboaa removed this from the 23.1.12.0 milestone May 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants