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 05:27:16 UTC 2019
On 8/04/2019 3:07 pm, Stefan Karlsson wrote:
> Looks good!
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 hotspot-runtime-dev
mailing list