RFR: 8213445: jcmd VM.symboltable and VM.stringtable -verbose output contains no shared symbols or strings [v2]

Calvin Cheung ccheung at openjdk.java.net
Fri Apr 15 17:42:43 UTC 2022


On Thu, 14 Apr 2022 18:55:33 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> Yes. Otherwise, I saw the following failures in the tests under cds/appcds/jcmd
>> 
>> 
>> <prefix path>/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_tier2_runtime/classes/2/runtime/cds/appcds/jcmd/JCmdTestFileSafety.d/jdk/test/lib/apps/LingeredApp.class : no such file or directory
>> <prefix path>/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_tier2_runtime/classes/2/runtime/cds/appcds/jcmd/JCmdTestFileSafety.d/jdk/test/lib/apps/LingeredApp$1.class : no such file or directory
>> java.lang.RuntimeException: jar operation failed
>> 	at JarBuilder.createJar(JarBuilder.java:216)
>> 	at JarBuilder.createSimpleJar(JarBuilder.java:180)
>> 	at JarBuilder.build(JarBuilder.java:90)
>> 	at JCmdTestDumpBase.buildJars(JCmdTestDumpBase.java:91)
>> 	at JCmdTestFileSafety.test(JCmdTestFileSafety.java:75)
>> 	at JCmdTestDumpBase.runTest(JCmdTestDumpBase.java:61)
>> 	at JCmdTestFileSafety.main(JCmdTestFileSafety.java:145)
>> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
>> 	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
>> 	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
>> 	at java.base/java.lang.Thread.run(Thread.java:828)
>> 
>> Not sure why my new DynamicSharedSymbols.java seems to trigger the above failure.
>
>> Yes. Otherwise, I saw the following failures in the tests under cds/appcds/jcmd
>> 
>> ```
>> <prefix path>/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_tier2_runtime/classes/2/runtime/cds/appcds/jcmd/JCmdTestFileSafety.d/jdk/test/lib/apps/LingeredApp.class : no such file or directory
>> <prefix path>/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_tier2_runtime/classes/2/runtime/cds/appcds/jcmd/JCmdTestFileSafety.d/jdk/test/lib/apps/LingeredApp$1.class : no such file or directory
>> java.lang.RuntimeException: jar operation failed
>> 	at JarBuilder.createJar(JarBuilder.java:216)
>> 	at JarBuilder.createSimpleJar(JarBuilder.java:180)
>> 	at JarBuilder.build(JarBuilder.java:90)
>> 	at JCmdTestDumpBase.buildJars(JCmdTestDumpBase.java:91)
>> 	at JCmdTestFileSafety.test(JCmdTestFileSafety.java:75)
>> 	at JCmdTestDumpBase.runTest(JCmdTestDumpBase.java:61)
>> 	at JCmdTestFileSafety.main(JCmdTestFileSafety.java:145)
>> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
>> 	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
>> 	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
>> 	at java.base/java.lang.Thread.run(Thread.java:828)
>> ```
>> 
>> Not sure why my new DynamicSharedSymbols.java seems to trigger the above failure.
> 
> The problem is caused by [CODETOOLS-7902847](https://bugs.openjdk.java.net/browse/CODETOOLS-7902847)
> 
> Have you tried using `@build` instead of `@compile`? That way you don't need to specify the file location.

I did try `@build` but it didn't work because the class file will be placed in a path specified by the `-Dtest.class.path` property such as `./JTwork/classes/0/test/hotspot/jtreg/runtime/cds/appcds/test-classes`. During the test run, it tries to find the class from the `-Dtest.classes` such as `./JTwork/classes/0/runtime/cds/appcds/jcmd/JCmdTestFileSafety.d` and couldn't find it.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8234


More information about the hotspot-runtime-dev mailing list