JDK-8339166 : java/lang/String/concat/HiddenClassUnloading.java fails on AIX and Linux ppc64le after JDK-8336856
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 24
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux,aix
  • CPU: ppc
  • Submitted: 2024-08-28
  • Updated: 2024-09-05
  • Resolved: 2024-08-30
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 24
24 b14Fixed
Related Reports
Relates :  
Description
We see HiddenClassUnloading.java failing on the ppc64 based platforms. On AIX it seems to fail always; Linux ppc64le sometimes.
Failure output :
java.lang.RuntimeException: unloadedClassCount is zero
	at HiddenClassUnloading.main(HiddenClassUnloading.java:66)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:573)
	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
	at java.base/java.lang.Thread.run(Thread.java:1575)
Comments
Changeset: 92c4704e Branch: master Author: Matthias Baesken <mbaesken@openjdk.org> Date: 2024-08-30 10:18:19 +0000 URL: https://git.openjdk.org/jdk/commit/92c4704edf75534b825765d156a7f70377ccb3bb
30-08-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/20771 Date: 2024-08-29 13:55:25 +0000
29-08-2024

On AIX (and also Linux ppc64le) "silently" ergonomics sets a different heap size for the test; see the output with enhanced logging : command: main -Xmx8M -Xms8M -Xverify:all -Xlog:class+unload,gc+init,gc+ergo*=debug HiddenClassUnloading ----------System.out:(89/9240)---------- [0.041s][info][gc,init] CardTable entry size: 512 [0.043s][debug][gc,ergo,heap] Expand the heap. requested expansion amount: 33554432B expansion amount: 33554432B .... [0.045s][info ][gc,init ] Heap Region Size: 1M [0.045s][info ][gc,init ] Heap Min Capacity: 32M [0.045s][info ][gc,init ] Heap Initial Capacity: 32M [0.045s][info ][gc,init ] Heap Max Capacity: 32M With 32M instead of 8M, of course the test works very differently and we need much higher number of iterations to see the GC + triggering of class unloading. With 12.000 iterations the test works nicely also on AIX.
29-08-2024