JDK-8317610 : runtime/CompressedOops/CompressedClassPointers.java fails after JDK-8305765
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 22
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux,windows
  • CPU: x86_64
  • Submitted: 2023-10-05
  • Updated: 2023-12-12
  • Resolved: 2023-11-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 22
22Resolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Sub Tasks
JDK-8318038 :  
Description
The following test failed in the JDK22 CI:

runtime/CompressedOops/CompressedClassPointers.java

Here's a snippet from the log file:

#section:driver
----------messages:(8/330)----------
command: driver CompressedClassPointers
reason: User specified action: run driver CompressedClassPointers 
started: Thu Oct 05 11:25:10 UTC 2023
Mode: agentvm
Agent id: 13
Additional exports to unnamed modules from @modules: java.base/jdk.internal.misc
finished: Thu Oct 05 11:25:18 UTC 2023
elapsed time (seconds): 7.674
----------configuration:(15/1493)*----------

<snip>

----------System.out:(44/17204)*----------
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -XX:SharedBaseAddress=8g -Xmx128m -Xlog:gc+metaspace=trace,metaspace=info,cds=trace -Xshare:off -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:10.884836100Z] Gathering output for process 44084
[2023-10-05T11:25:10.916086300Z] Waiting for completion for process 44084
[2023-10-05T11:25:11.426191600Z] Waiting for completion finished for process 44084
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -XX:CompressedClassSpaceSize=1g -Xmx128m -Xlog:gc+metaspace=trace,metaspace=info,cds=trace -Xshare:off -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:11.440996400Z] Gathering output for process 30396
[2023-10-05T11:25:11.441903300Z] Waiting for completion for process 30396
[2023-10-05T11:25:12.010799500Z] Waiting for completion finished for process 30396
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xmx30g -Xlog:gc+metaspace=trace,metaspace=info,cds=trace -Xshare:off -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:12.010799500Z] Gathering output for process 46688
[2023-10-05T11:25:12.010799500Z] Waiting for completion for process 46688
[2023-10-05T11:25:12.535289800Z] Waiting for completion finished for process 46688
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xmx31g -Xlog:gc+metaspace=trace,metaspace=info,cds=trace -Xshare:off -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:12.535289800Z] Gathering output for process 10072
[2023-10-05T11:25:12.535289800Z] Waiting for completion for process 10072
[2023-10-05T11:25:12.934934300Z] Waiting for completion finished for process 10072
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -Xmx128m -XX:+UseLargePages -Xlog:gc+metaspace=trace,metaspace=info,cds=trace -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:12.934934300Z] Gathering output for process 23680
[2023-10-05T11:25:12.940647900Z] Waiting for completion for process 23680
[2023-10-05T11:25:13.257046800Z] Waiting for completion finished for process 23680
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:HeapBaseMinAddress=1m -Xlog:gc+heap+coops=debug -version ]
[2023-10-05T11:25:13.257046800Z] Gathering output for process 45724
[2023-10-05T11:25:13.571878300Z] Waiting for completion for process 45724
[2023-10-05T11:25:13.571878300Z] Waiting for completion finished for process 45724
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -XX:SharedArchiveFile=./CompressedClassPointers.jsa -Xmx128m -XX:SharedBaseAddress=8g -XX:+VerifyBeforeGC -Xshare:dump -Xlog:cds,gc+heap+coops=debug ]
[2023-10-05T11:25:13.587495600Z] Gathering output for process 11096
[2023-10-05T11:25:16.320308400Z] Waiting for completion for process 11096
[2023-10-05T11:25:16.320308400Z] Waiting for completion finished for process 11096
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:+UnlockDiagnosticVMOptions -XX:SharedArchiveFile=./CompressedClassPointers.jsa -Xmx128m -XX:SharedBaseAddress=8g -Xlog:gc+heap+coops=debug -Xshare:on -version ]
[2023-10-05T11:25:16.320308400Z] Gathering output for process 37840
[2023-10-05T11:25:16.559377600Z] Waiting for completion for process 37840
[2023-10-05T11:25:16.559377600Z] Waiting for completion finished for process 37840
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UnlockDiagnosticVMOptions -XX:SharedBaseAddress=8g -Xmx128m -Xlog:gc+metaspace=trace -Xshare:off -Xlog:cds=trace -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:16.575062700Z] Gathering output for process 19172
[2023-10-05T11:25:17.148979700Z] Waiting for completion for process 19172
[2023-10-05T11:25:17.148979700Z] Waiting for completion finished for process 19172
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UnlockDiagnosticVMOptions -XX:CompressedClassSpaceSize=1g -Xmx128m -Xlog:gc+metaspace=trace -Xshare:off -Xlog:cds=trace -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:17.164576500Z] Gathering output for process 33204
[2023-10-05T11:25:17.738346800Z] Waiting for completion for process 33204
[2023-10-05T11:25:17.745042500Z] Waiting for completion finished for process 33204
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\windows-x64-debug.jdk\\jdk-22\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\runtime\\CompressedOops\\CompressedClassPointers.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-22+19-1426\\src.full\\open\\test\\hotspot\\jtreg\\runtime\\CompressedOops;C:\\sb\\prod\\1696504917\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_tier1_runtime\\classes\\1\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.9.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\7.3.1\\1\\bundles\\jtreg-7.3.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xmx30g -Xlog:gc+metaspace=trace -Xshare:off -Xlog:cds=trace -XX:+VerifyBeforeGC -version ]
[2023-10-05T11:25:17.748044300Z] Gathering output for process 23160
[2023-10-05T11:25:18.448549Z] Waiting for completion for process 23160
[2023-10-05T11:25:18.464172500Z] Waiting for completion finished for process 23160
----------System.err:(22/1271)----------
 stdout: [[0.075s][info][gc,metaspace] CDS archive(s) not mapped
[0.075s][info][gc,metaspace] Compressed class space mapped at: 0x00000000c0000000-0x0000000100000000, reserved size: 1073741824
[0.076s][info][gc,metaspace] Narrow klass base: 0x0000000000000000, Narrow klass shift: 3, Narrow klass range: 0x100000000
];
 stderr: [java version "22-ea" 2024-03-19
Java(TM) SE Runtime Environment (fastdebug build 22-ea+19-1426)
Java HotSpot(TM) 64-Bit Server VM (fastdebug build 22-ea+19-1426, mixed mode)
]
 exitValue = 0

java.lang.RuntimeException: 'Narrow klass shift: 0' missing from stdout/stderr
	at jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:221)
	at CompressedClassPointers.largeHeapTestNoCoop(CompressedClassPointers.java:269)
	at CompressedClassPointers.main(CompressedClassPointers.java:351)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
	at java.base/java.lang.Thread.run(Thread.java:1570)

JavaTest Message: Test threw exception: java.lang.RuntimeException
JavaTest Message: shutting down test

result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: 'Narrow klass shift: 0' missing from stdout/stderr
Comments
[~stuefe] This issue was closed as a duplicate but there is a test in the ProblemList associated with this issue. As the duplicate issue is itself resolved, the test needs to be removed from the ProblemList again. Update: Fixed by JDK-8321825
12-12-2023

[~ccheung] Sure I can take it since it looks like a duplicate to JDK-8318485. I would think the current CompressedClassPointers.java could be greatly reduced. I hesitate to do this though because I remember that many folks worked on these, and there may be many discussions ahead, and I am strapped for time a bit (we all are :)
20-10-2023

[~stuefe] Would you like to take ownership of this bug? Looks like the fix for the bug you've filed (https://bugs.openjdk.org/browse/JDK-8318485) would address the current issue. Also, would the current CompressedClassPointers.java test be removed once a new test (as indicated in your PR #16261) has been developed? Or if you think a quick/stop-gap kind of fix for the current issue is desired, I can proceed with my draft PR.
19-10-2023

See https://github.com/openjdk/jdk/pull/16261 for how the second variant of the test would look like.
19-10-2023

[~iklam] Not from me, I can only guess. largeHeapTestNoCoop : with -coop, heap should be placed anywhere, so probably not in low address regions, so they should be free and we should be able to allocate there. I long disliked these tests and support a scrub down. In my view, 2 kinds of tests should exist, and I suspect this test was trying to do both. - a test that tests that the JVM can reasonably find a favourable location for the class space. So, that our strategy to map in low-address regions works. Since we are dependent on the ASLR gods and on machine settings (see os::vm_min_address() on the various platforms), this should be a basic test with high probability: very small class space, compressed oops off, small heap - a test that tests that the JVM, faced with a certain odd location for class space, then chooses the right narrow klass encoding for that address. So, if we are fully contained < 4G, we should choose shift 0 base 0. This test should force the mapping address with -XX:CompressedClassSpaceBaseAddress. It could test exciting locations like class space hanging one feet into 4G, and then shift must be 3. I opened https://bugs.openjdk.org/browse/JDK-8318485 to fix the <= problem. A separate one-liner fix will also be easier to downport.
19-10-2023

BTW, the existing test has a lot of "isCCSReservedAnywhere(output)", but this will basically skip most of the checks, because ""Reserving compressed class space anywhere"" is always printed out unless you specify CompressedClassSpaceBaseAddress, which is not done in this test: https://github.com/openjdk/jdk/blob/24bc5bd104b8b4b96a61cffd3ec35cc795744eb9/src/hotspot/share/memory/metaspace.cpp#L775-L797 Thomas, I suspect you confused that with the "Trying anywhere ..." log from here: https://github.com/openjdk/jdk/blob/24bc5bd104b8b4b96a61cffd3ec35cc795744eb9/src/hotspot/share/memory/metaspace.cpp#L633-L636
19-10-2023

Also, the test case is getting very convoluted. More tweaks will make it unmaintainable. public static void largeHeapAbove32GTest() throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", "-Xmx31g", logging_option, "-Xshare:off", "-XX:+VerifyBeforeGC", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); if (testNarrowKlassBase()) { if (!(Platform.isAArch64() && Platform.isOSX()) && !isCCSReservedAnywhere(output)) { // see JDK-8262895 output.shouldContain("Narrow klass base: 0x0000000000000000"); if (!Platform.isAArch64() && !Platform.isPPC() && !Platform.isOSX()) { output.shouldContain("Narrow klass shift: 0"); } } } output.shouldHaveExitValue(0); } This is really a white box test to validate the logic inside the VM. Therefore, we should have a common function that expresses the intended logic and use that to check agains all possible output. My suggestion is here: https://github.com/openjdk/jdk/compare/master...iklam:jdk:refactor-CompressedClassPointers.java?expand=1
19-10-2023

[~stuefe] could you explain the intention of these tests? public static void largeHeapTestNoCoop() throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( "-XX:-UseCompressedOops", "-XX:+UseCompressedClassPointers", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", "-Xmx30g", "-Xlog:gc+metaspace=trace", "-Xshare:off", "-Xlog:cds=trace", "-XX:+VerifyBeforeGC", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); if (!isCCSReservedAnywhere(output)) { output.shouldContain("Narrow klass base: 0x0000000000000000"); } if (!Platform.isAArch64() && !Platform.isPPC()) { // Currently relax this test for Aarch64 and ppc. output.shouldContain("Narrow klass shift: 0"); } output.shouldHaveExitValue(0); } Is it "if Narrow klass range is 0x100000000 (the default value) or lower, and low-range reservation succeeded, then Narrow klass shift must be zero"? If so, we need to fix the VM to say "if (range <= UnscaledClassSpaceMax) { " Also, the check of output.shouldContain("Narrow klass shift: 0"); Must be placed inside "if (!isCCSReservedAnywhere(output))", which indicates low-range reservation succeeded
19-10-2023

I checked the JDK 17 code and the " if (range < UnscaledClassSpaceMax) { " is the same. The CompressedKlassPointers::initialize function looks the same except that it is located in a different file (compressedOops.cpp). I have a draft PR with a fix in the test. Please see: https://github.com/openjdk/jdk/pull/16254 I ran the test 400 times each on linux-x64 and windows-x64 and didn't see any failures. Before the fix, out of 400 runs, I saw approx. 1% failure rate on windows-x64 and 2% failure rate on linux-x64.
18-10-2023

0xc000_0000-0x1_0000_0000 should work with shift 0. The range is [) . " if (range < UnscaledClassSpaceMax) { " Maybe that's the error right there, it should by <=. Since range is exclusive end and UnscaledClassSpaceMax is too. Not sure but this may have been my error. If so, sorry.
18-10-2023

The failures are in the following 2 test scenarios: 1) stdout: [[0.020s][info][gc,metaspace] CDS archive(s) not mapped [0.020s][info][gc,metaspace] Compressed class space mapped at: 0x00000000c0000000-0x0000000100000000, reserved size: 1073741824 [0.020s][info][gc,metaspace] Narrow klass base: 0x0000000000000000, Narrow klass shift: 3, Narrow klass range: 0x100000000 ]; stderr: [openjdk version "22-ea" 2024-03-19 OpenJDK Runtime Environment (build 22-ea+19-1431) OpenJDK 64-Bit Server VM (build 22-ea+19-1431, mixed mode) ] exitValue = 0 java.lang.RuntimeException: 'Narrow klass shift: 0' missing from stdout/stderr at jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:221) at CompressedClassPointers.largeHeapTestNoCoop(CompressedClassPointers.java:269) at CompressedClassPointers.main(CompressedClassPointers.java:351) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333) at java.base/java.lang.Thread.run(Thread.java:1570) 2) stdout: [[0.017s][info][gc,metaspace] CDS archive(s) not mapped [0.017s][info][gc,metaspace] Compressed class space mapped at: 0x00000000c0000000-0x0000000100000000, reserved size: 1073741824 [0.017s][info][gc,metaspace] Narrow klass base: 0x0000000000000000, Narrow klass shift: 3, Narrow klass range: 0x100000000 ]; stderr: [java version "22-ea" 2024-03-19 Java(TM) SE Runtime Environment (fastdebug build 22-ea+19-1473) Java HotSpot(TM) 64-Bit Server VM (fastdebug build 22-ea+19-1473, mixed mode) ] exitValue = 0 java.lang.RuntimeException: 'Narrow klass shift: 0' missing from stdout/stderr at jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:221) at CompressedClassPointers.smallHeapTestWith1GNoCoop(CompressedClassPointers.java:247) at CompressedClassPointers.main(CompressedClassPointers.java:350) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333) at java.base/java.lang.Thread.run(Thread.java:1570) Both cases were run with -Xshare:off. The test cases expect the narrow klass shift to be 0 but the actual value is 3. It is due to the Narrow klass range: 0x100000000, the narrow klass shift is set to 3. In compressedKlass.cpp, the CompressedKlassPointers::initialize function sets the narrow klass shift based on the narrow klass range: // We may not even need a shift if the range fits into 32bit: const uint64_t UnscaledClassSpaceMax = (uint64_t(max_juint) + 1); if (range < UnscaledClassSpaceMax) { shift = 0; } else { shift = LogKlassAlignmentInBytes; } I could reproduce it by running standalone repeatedly with a script like the following: max=400 for ((i=0; i < max; i++)); do $MYJDK/bin/java -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UnlockDiagnosticVMOptions -XX:CompressedClassSpaceSize=1g -Xmx128m -Xlog:gc+metaspace=trace -Xshare:off -Xlog:cds=trace -XX:+VerifyBeforeGC -version >> small.txt; done On my linux host, I usually saw Narrow klass range: 0x100000000 occurred once out of 400 runs: [0.031s][info][gc,metaspace] CDS archive(s) not mapped [0.031s][info][gc,metaspace] Compressed class space mapped at: 0x00000000c0000000-0x0000000100000000, reserved size: 1073741824 [0.031s][info][gc,metaspace] Narrow klass base: 0x0000000000000000, Narrow klass shift: 3, Narrow klass range: 0x100000000
18-10-2023

Here's the log from my jdk-22+19 stress run sighting on linux-x64: $ unzip -l jdk-22+19_linux-x64.8317610.zip Archive: jdk-22+19_linux-x64.8317610.zip Length Date Time Name --------- ---------- ----- ---- 34811 2023-10-15 16:07 jdk-22+19_3/failures.linux-x86_64/CompressedClassPointers.jtr.release --------- ------- 34811 1 file
16-10-2023

ILW = MMM = P3
10-10-2023

The fix for: JDK-8305765 CompressedClassPointers.java is unreliable due to ASLR was integrated in jdk-22+18-1418 and this failure sighting happened in jdk-22+19-1426-tier1 so I'm adding the 'intermittent' label.
05-10-2023

[~ccheung] - This Tier1 failure appears to be a regression due to: JDK-8305765 CompressedClassPointers.java is unreliable due to ASLR
05-10-2023