RFR: 8206267: Unsafe publication of StubCodeDesc leads to crashes

Aleksey Shipilev shade at redhat.com
Tue Jul 3 14:57:39 UTC 2018


On 07/03/2018 04:31 PM, aph wrote:
> The StubCodeDesc constructor is unsychronized. However, it runs when
> the C2 compiler thread is initializing. The compiler thread reads the
> StubCodeDesc list while it is in an unstable state, resulting in a
> read from an uninitialized pointer field and it then segfaults,
> causing the VM to abort.
> 
> http://cr.openjdk.java.net/~aph/8206267/
> 
> OK for 11 and 12?

Looks good for 12.
Looks simple enough for 11.

Star formatting is a bit awkward:
   37 StubCodeDesc *volatile StubCodeDesc::_list = NULL;
   ...
   42   static StubCodeDesc *volatile _list;         // the list of all descriptors

...should probably be:
   37 StubCodeDesc* volatile StubCodeDesc::_list = NULL;
   ...
   42   static StubCodeDesc* volatile _list;         // the list of all descriptors


-Aleksey




More information about the hotspot-runtime-dev mailing list