RFR (XXXS): 8221584: SIGSEGV in os::PlatformEvent::unpark() in JvmtiRawMonitor::raw_exit while posting method exit event
Robbin Ehn
robbin.ehn at oracle.com
Mon Apr 8 07:13:31 UTC 2019
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