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