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