Request for Review 8024483 - assertion failure: (!mirror_alive || loader_alive) failed AND 8024954: CMS: CMSClassUnloadingMaxInterval is not implemented correctly
bengt.rutisson at oracle.com
Mon Nov 4 09:02:47 UTC 2013
On 2013-11-02 01:02, Jon Masamitsu wrote:
> 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
> 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.
> 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
> greater than 1, the roots need to be set dynamically
> (done in CMSCollector::setup_cms_unloading_and_verification_state with
> this fix).
Looks good. One minor question. In CMSCollector::CMSCollector() you left
But in CMSCollector::setup_cms_unloading_and_verification_state() we now
always set up the state correctly to be either SO_AllClasses or
SO_SystemClasses. So, do we need that initilization in
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the hotspot-gc-dev