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

Bengt Rutisson bengt.rutisson at oracle.com
Fri Nov 8 06:48:10 UTC 2013


Hi Jon,

On 11/5/13 7:22 PM, Jon Masamitsu wrote:
> I've updated the webrev for 8024954 for review
> comments (thanks, Bengt)
>
> http://cr.openjdk.java.net/~jmasa/8024954/webrev.02/

Looks good.

Sorry for not replying earlier. The cr.openjdk.java.net server was down 
my whole workday after you sent this out. And yesterday I had forgotten 
about it.

Bengt

>
> 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