RFR(s): 8213574: Deadlock in string table expansion when dumping lots of CDS classes

Robbin Ehn robbin.ehn at oracle.com
Tue Nov 13 16:51:58 UTC 2018


Thanks Ioi!

Replying to original mail with an small update, please have a look.

/Robbin

On 11/12/18 8:18 PM, Ioi Lam wrote:
> Hi Robbin,
> 
> The fix looks good to me. Thanks for fixing this bug for CDS!
> 
> Thanks
> 
> - Ioi
> 
> 
> On 11/12/18 5:59 AM, Robbin Ehn wrote:
>> Hi all, please review.
>>
>> The re-sizing operation is run by the ServiceThread (JavaThread). To be 
>> safepoint polite it pauses the operation and do safepoint checks. Operations on
>> the hashtable that visit multiple bucket are mutual exclusive. This means you
>> can't iterate over the table during a safepoint if there is paused resize.
>>
>> The hashtable uses a Mutex, which means if there were other threads using it
>> during the safepoint the VM thread sneaking would break it. Since there are no 
>> such users it is safe to access it without locks in side the safepoint. That is
>> how rehash works today.
>>
>> Until we sorted this out better in 8213742,  I'm adding a safepoint scanning
>> operation that can handle a paused resize and which skips the lock.
>>
>> CR: https://bugs.openjdk.java.net/browse/JDK-8213574
>> Webrev: http://cr.openjdk.java.net/~rehn/8213574/webrev/
>>
>> Passes t1-3 and 8213587 new test which triggered the issue.
>>
>> Thanks, Robbin
> 


More information about the hotspot-runtime-dev mailing list