RFR(xxs): 8213236: A partial removed/deleted JavaThread cannot transition

Robbin Ehn robbin.ehn at oracle.com
Fri Nov 2 08:21:38 UTC 2018


On 11/2/18 12:56 AM, David Holmes wrote:
> +2 :)

Thanks David!

/Robbin

> 
> Thanks,
> David
> 
> PS. Thanks Dan for explaining the issue in the bug report!
> 
> On 2/11/2018 5:31 AM, Erik Osterlund wrote:
>> +1
>>
>> /Erik
>>
>>> On 1 Nov 2018, at 20:22, Robbin Ehn <robbin.ehn at oracle.com> wrote:
>>>
>>> Hi Dan,
>>>>> I don't think we should grab Heap_lock at all and we should just remove it.
>>>>> If there is a problem with "unparseable heap", taking Heap_lock seems to 
>>>>> the wrong solution.
>>>> I don't think you want to drob the grab of the Heap_lock from
>>>> this code path as part of this fix. That should be done separately.
>>>> Of course, you have GC folks close to you so you might be able to
>>>> resolve the issue (theoretically) quickly. However, I think that
>>>> will mean that this fix needs more testing.
>>>
>>> I was wrong, we can do as you say just skip safepoint checks on Heap_lock.
>>>
>>> The incremental is:
>>> diff -r f5f6ed30bb13 src/hotspot/share/runtime/thread.cpp
>>> --- a/src/hotspot/share/runtime/thread.cpp    Thu Nov 01 20:10:18 2018 +0100
>>> +++ b/src/hotspot/share/runtime/thread.cpp    Thu Nov 01 20:17:58 2018 +0100
>>> @@ -4289,1 +4289,1 @@
>>> -    MutexLocker ml(Heap_lock);
>>> +    MutexLockerEx ml(Heap_lock, Mutex::_no_safepoint_check_flag);
>>> diff -r f5f6ed30bb13 src/hotspot/share/runtime/vmThread.cpp
>>> --- a/src/hotspot/share/runtime/vmThread.cpp    Thu Nov 01 20:10:18 2018 +0100
>>> +++ b/src/hotspot/share/runtime/vmThread.cpp    Thu Nov 01 20:17:58 2018 +0100
>>> @@ -323,1 +323,1 @@
>>> -  assert(((JavaThread*)Thread::current())->is_terminated(), "Should be off 
>>> threadslist");
>>> +  assert(((JavaThread*)Thread::current())->is_terminated(), "Should be 
>>> terminated");
>>>
>>> Re-running t1-2, I expect no problems.
>>>
>>> Thanks!
>>>
>>> /Robbin
>>>
>>>> Dan
>>>>>
>>>>> /Robbin
>>>>>
>>>>>>
>>>>>> Dan
>>>>>>
>>>>>>
>>>>>>
>>>>>>> _should_terminate = true;
>>>>>>>       VMOperationQueue_lock->notify();
>>>>>>>     }
>>>>>>>
>>>>>>> Passes t1-2.
>>>>>>>
>>>>>>> Thanks Robbin
>>>>>>
>>


More information about the hotspot-runtime-dev mailing list