Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JDK17]integration tests failed in native mode which uses JMX #3325

Closed
ffang opened this issue Nov 23, 2021 · 3 comments
Closed

[JDK17]integration tests failed in native mode which uses JMX #3325

ffang opened this issue Nov 23, 2021 · 3 comments
Labels
JDK17 JDK17 specific issue native test

Comments

@ffang
Copy link
Contributor

ffang commented Nov 23, 2021

get error like

Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: sun.management.Util. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
Trace: 
	at parsing com.oracle.svm.core.genscavenge.CompleteGarbageCollectorMXBean.getObjectName(CompleteGarbageCollectorMXBean.java:81)
Call path from entry point to com.oracle.svm.core.genscavenge.CompleteGarbageCollectorMXBean.getObjectName(): 
	at com.oracle.svm.core.genscavenge.CompleteGarbageCollectorMXBean.getObjectName(CompleteGarbageCollectorMXBean.java:81)
	at com.oracle.svm.core.jdk.management.ManagementSupport.addMXBean(ManagementSupport.java:267)
	at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:259)
	at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
	at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:969)
	at org.apache.commons.pool2.impl.GenericKeyedObjectPool.close(GenericKeyedObjectPool.java:695)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.close(PosixSunSecuritySubstitutions.java:86)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.run(PosixSunSecuritySubstitutions.java:70)
	at java.lang.Thread.run(Thread.java:833)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:596)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
	at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: sun.management.Util. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
Trace: 
	at parsing com.oracle.svm.core.genscavenge.IncrementalGarbageCollectorMXBean.getObjectName(IncrementalGarbageCollectorMXBean.java:81)
Call path from entry point to com.oracle.svm.core.genscavenge.IncrementalGarbageCollectorMXBean.getObjectName(): 
	at com.oracle.svm.core.genscavenge.IncrementalGarbageCollectorMXBean.getObjectName(IncrementalGarbageCollectorMXBean.java:81)
	at com.oracle.svm.core.jdk.management.ManagementSupport.addMXBean(ManagementSupport.java:267)
	at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:259)
	at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
	at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:969)
	at org.apache.commons.pool2.impl.GenericKeyedObjectPool.close(GenericKeyedObjectPool.java:695)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.close(PosixSunSecuritySubstitutions.java:86)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.run(PosixSunSecuritySubstitutions.java:70)
	at java.lang.Thread.run(Thread.java:833)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:596)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
	at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: sun.management.Util. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
Trace: 
	at parsing com.oracle.svm.core.heap.AbstractMemoryMXBean.getObjectName(AbstractMemoryMXBean.java:66)
Call path from entry point to com.oracle.svm.core.heap.AbstractMemoryMXBean.getObjectName(): 
	at com.oracle.svm.core.heap.AbstractMemoryMXBean.getObjectName(AbstractMemoryMXBean.java:66)
	at com.oracle.svm.core.jdk.management.ManagementSupport.addMXBean(ManagementSupport.java:267)
	at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:259)
	at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
	at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:969)
	at org.apache.commons.pool2.impl.GenericKeyedObjectPool.close(GenericKeyedObjectPool.java:695)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.close(PosixSunSecuritySubstitutions.java:86)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.run(PosixSunSecuritySubstitutions.java:70)
	at java.lang.Thread.run(Thread.java:833)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:596)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
	at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: sun.management.Util. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
Trace: 
	at parsing com.oracle.svm.core.jdk.management.SubstrateClassLoadingMXBean.getObjectName(SubstrateClassLoadingMXBean.java:47)
Call path from entry point to com.oracle.svm.core.jdk.management.SubstrateClassLoadingMXBean.getObjectName(): 
	at com.oracle.svm.core.jdk.management.SubstrateClassLoadingMXBean.getObjectName(SubstrateClassLoadingMXBean.java:47)
	at com.oracle.svm.core.jdk.management.ManagementSupport.addMXBean(ManagementSupport.java:267)
	at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:259)
	at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
	at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:969)
	at org.apache.commons.pool2.impl.GenericKeyedObjectPool.close(GenericKeyedObjectPool.java:695)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.close(PosixSunSecuritySubstitutions.java:86)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.run(PosixSunSecuritySubstitutions.java:70)
	at java.lang.Thread.run(Thread.java:833)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:596)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
	at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: sun.management.Util. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
Trace: 
	at parsing com.oracle.svm.core.jdk.management.SubstrateCompilationMXBean.getObjectName(SubstrateCompilationMXBean.java:47)
Call path from entry point to com.oracle.svm.core.jdk.management.SubstrateCompilationMXBean.getObjectName(): 
	at com.oracle.svm.core.jdk.management.SubstrateCompilationMXBean.getObjectName(SubstrateCompilationMXBean.java:47)
	at com.oracle.svm.core.jdk.management.ManagementSupport.addMXBean(ManagementSupport.java:267)
	at com.oracle.svm.core.jdk.management.ManagementSupport.getPlatformMBeanServer(ManagementSupport.java:259)
	at com.oracle.svm.core.jdk.management.Target_java_lang_management_ManagementFactory.getPlatformMBeanServer(Target_java_lang_management_ManagementFactory.java:45)
	at org.apache.commons.pool2.impl.BaseGenericObjectPool.jmxUnregister(BaseGenericObjectPool.java:969)
	at org.apache.commons.pool2.impl.GenericKeyedObjectPool.close(GenericKeyedObjectPool.java:695)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.close(PosixSunSecuritySubstitutions.java:86)
	at com.oracle.svm.core.posix.NativeSecureRandomFilesCloserShutdownHook.run(PosixSunSecuritySubstitutions.java:70)
	at java.lang.Thread.run(Thread.java:833)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:596)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
	at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)

This is error is on JDK17 only(but I believe this issue occurs on all OS), JDK11 it's OK.

Looks like we need to add add-opens/add-exports java.management/sun.management=ALL-UNNAMED JVM flag somewhere to make package sun.management more accessible when building the native image

@ffang ffang self-assigned this Nov 23, 2021
@ffang ffang added test native JDK17 JDK17 specific issue labels Nov 23, 2021
@ffang
Copy link
Contributor Author

ffang commented Nov 23, 2021

Ah, nice, we have the similar issue reported and fixed at quarkus already
quarkusio/quarkus#21372

And this commit quarkusio/quarkus@dc9a6ec fixed it from quarkus-core when building the native image

@ffang
Copy link
Contributor Author

ffang commented Nov 23, 2021

Affected tests

  • activemq
  • atlasmap
  • git
  • nsq
  • openapi-java
  • optaplanner

and we can add property

<quarkus.native.additional-build-args>-J--add-exports=java.management/sun.management=ALL-UNNAMED</quarkus.native.additional-build-args>

to native profile before bumping the quarkus version as temporary fix

@ffang ffang changed the title [JDK17]activemq integration test failed in native mode [JDK17]integration tests failed in native mode which using JMX Nov 23, 2021
@ffang ffang changed the title [JDK17]integration tests failed in native mode which using JMX [JDK17]integration tests failed in native mode which uses JMX Nov 23, 2021
@jamesnetherton
Copy link
Contributor

Out of date. This is now working without any issues.

@jamesnetherton jamesnetherton closed this as not planned Won't fix, can't repro, duplicate, stale Sep 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JDK17 JDK17 specific issue native test
Projects
None yet
Development

No branches or pull requests

2 participants