RFR (XXXS): 8221584: SIGSEGV in os::PlatformEvent::unpark() in JvmtiRawMonitor::raw_exit while posting method exit event

David Holmes david.holmes at oracle.com
Mon Apr 8 07:48:38 UTC 2019


Thanks Robbin. I guess between the three of us we have this covered one 
way or another. :)

David

On 8/04/2019 5:13 pm, Robbin Ehn wrote:
> On 4/8/19 7:27 AM, David Holmes wrote:
>> On 8/04/2019 3:07 pm, Stefan Karlsson wrote:
>>> Looks good!
> 
> +1
> 
> Thanks, Robbin (I can be reviewer)
> 
>>
>> Thanks - do you want to be co-contributor or a reviewer?  :)
>>
>> David
>>
>>> StefanK
>>>
>>> On 2019-04-08 03:49, David Holmes wrote:
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8221584
>>>> webrev: http://cr.openjdk.java.net/~dholmes/8221584/webrev/
>>>>
>>>> I'm really just sponsoring this fix as the problem was diagnozed by 
>>>> Robbin Ehn and Stefan Karlsson - thanks guys! :) So they are the 
>>>> contributors and I'm already one Reviewer.
>>>>
>>>> There's a missing loadstore barrier between extracting the ParkEvent 
>>>> from an ObjectWaiter node, and setting the node's TState to allow 
>>>> the the entering thread to proceed. It seems our recent update to 
>>>> gcc 8.2 resulted in the compiler reordering those two actions, 
>>>> meaning that the Objectwaiter pointer could now be pointing into a 
>>>> stack location with random contents. That might manifest as a SEGV 
>>>> or we may treat random memory as a pthread_mutex_t and get an EINVAL 
>>>> (or potentially other errors) on pthread_mutex_lock.
>>>>
>>>> Testing: mach5 tiers 1-3 (sanity - the added barrier can't break 
>>>> anything)
>>>>
>>>> Thanks,
>>>> David
>>>


More information about the serviceability-dev mailing list