RFR: JDK-8221086: Shenandoah-specific workaround for JDK-8220671

Kim Barrett kim.barrett at oracle.com
Tue Mar 19 18:41:27 UTC 2019

> On Mar 19, 2019, at 2:23 PM, Roman Kennke <rkennke at redhat.com> wrote:
> JDK-8220671: Initialization race for non-JavaThread PtrQueue is making
> troubles in Shenandoah's testing. While we're working out a generally
> acceptable solution, we need a usable workaround in Shenandoah.
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8221086
> Webrev:
> http://cr.openjdk.java.net/~rkennke/JDK-8221086/webrev.01/
> The proposed fix places a SuspendibleThreadJoiner around the
> on_thread_attach() and on_thread_detach(), thereby preventing the race.
> As soon as we figured out a solution for JDK-8220671 (which may well be
> this 'workaround') we shall revert/overwrite this change.
> Testing: many rounds of hotspot_gc_shenandoah and even more rounds of
> the offending TestStringDedupStress.
> Ok?
> Roman

I was expecting there to be some shared code changes here, and not a pure shenandoah
change.  Doesn’t this have the same problem as your “nope, needs coffee” proposal in the
main email thread from yesterday?  The attach/list-add pair needs to be atomic wrto the
SATB state change, and this doesn’t cover the list-add.

More information about the hotspot-gc-dev mailing list