Request for Review 8024483 - assertion failure: (!mirror_alive || loader_alive) failed AND 8024954: CMS: CMSClassUnloadingMaxInterval is not implemented correctly

Jon Masamitsu jon.masamitsu at oracle.com
Sat Nov 2 00:02:17 UTC 2013


8024483 - assertion failure: (!mirror_alive || loader_alive) failed

The default value of _should_unload_classes in CMSCollector is false.
The default value of CMSClassUnloadingEnabled is true (changed in jdk8)
and is used to set the root scanning options.  This inconsistency leads to
dead class loaders without unloading classes.

The fix for 8024954 fixes (or works around) this inconsistency by resetting
the root scanning options based on _should_unload_classes.

Additionally there is a missing call to update_should_unload_classes() in
the CMS foreground collector.  Adding the call allows the test for
CMSClassUnloadingEnabled  to pass but may not be a complete fix.

http://cr.openjdk.java.net/~jmasa/8024483/webrev.00/


8024954: CMS: CMSClassUnloadingMaxInterval is not implemented correctly

For 8024954 the classes used as roots was being set at initialization 
based on
the value of CMSClassUnloadingEnabled. For a value of 
CMSClassUnloadingMaxInterval
greater than 1, the roots need to be set dynamically
(done in CMSCollector::setup_cms_unloading_and_verification_state with 
this fix).

http://cr.openjdk.java.net/~jmasa/8024954/webrev.01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20131101/4374f588/attachment.htm>


More information about the hotspot-gc-dev mailing list