RFR(XXS) 8241244 CDS dynamic dump asserts in ArchivePtrBitmapCleaner::do_bit

Ioi Lam ioi.lam at oracle.com
Mon Mar 23 03:49:23 UTC 2020


https://bugs.openjdk.java.net/browse/JDK-8241244
http://cr.openjdk.java.net/~iklam/jdk15/8241244-dynamic-cds-redefined-class.v01/

In the failing test case, some classes in the base archive (e.g., 
java.lang.Throwable) are redefined by JFR before the dynamic archive is 
dumped. The assert happens when java/lang/InternalError is destined for 
the dynamic archive, but its vtable contains a redefined method of the 
Throwable class. This method is neither in the base archive, nor in the 
dynamic archive, causing the assert to fail.

The fix is: if a class (or any of its super-types) has been redefined, 
do not dump this class into the dynamic CDS archive.

Note - this fix is not needed for the static archive dumping (java 
-Xshare:dump), as class redefinition cannot happen.

Thanks
- Ioi





More information about the hotspot-runtime-dev mailing list