RFR (S) 8215575: C2 crash: assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded

David Holmes david.holmes at oracle.com
Tue Jan 8 22:18:58 UTC 2019


Hi Coleen,

On 9/01/2019 2:08 am, coleen.phillimore at oracle.com wrote:
> 
> Hi David,
> 
> My original version had a storestore but Erik convinced me that is 
> unneeded since the subklass and sibling lists are what are read 
> concurrently and were the fields that needed the ordering, not 
> necessarily this one.    If we backport this to 11, we have to add 
> barriers to _subklass and _next_sibling like Erik has added.
> 
> Does the rest of the change look good?

Yes.

Thanks,
David

> Thanks,
> Coleen
> 
> On 1/7/19 8:49 PM, David Holmes wrote:
>> Hi Coleen,
>>
>> On 8/01/2019 5:50 am, coleen.phillimore at oracle.com wrote:
>>> Summary: Set InstanceKlass::loaded before adding classes to the 
>>> subklass list, which can be read concurrently by the compiler.
>>
>> I think you need a storestore barrier to ensure the new order is 
>> preserved.
>>
>> Cheers,
>> David
>>
>>> Thanks to Erik for the diagnosis and suggested fix.  See bug comments 
>>> for more details.
>>>
>>> Tested with hs-tier1-3, 6 and 8.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8215575.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8215575
>>>
>>> Thanks,
>>> Coleen
> 


More information about the hotspot-dev mailing list