Looks good!
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