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

Mikael Gerdin mikael.gerdin at oracle.com
Fri Nov 8 08:40:55 UTC 2013


Jon,

Sorry for not replying earlier.

Both changes below look good.

/Mikael

On Tuesday 05 November 2013 10.22.33 Jon Masamitsu wrote:
> I've updated the webrev for 8024954 for review
> comments (thanks, Bengt)
> 
> http://cr.openjdk.java.net/~jmasa/8024954/webrev.02/
> 
> On 11/1/2013 5:02 PM, 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
> > 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/




More information about the hotspot-gc-dev mailing list