RFR: Claim ballot before single-threaded sync roots processing

Roman Kennke rkennke at redhat.com
Mon Nov 13 20:17:22 UTC 2017


This is the cause for the is_marked_complete() assert that we've 
observed coming out of mark-compact a couple of times:

in ShenandoahRootProcessor, we don't claim the ballot before doing 
single-threaded sync root processing. Multiple threads are going into 
global sync roots scanning, the first one correctly updates the 
references, all others will write trash to it. This only happens when 
threads exit (the global list is only used for moribund threads).

http://cr.openjdk.java.net/~rkennke/fixsyncroots/webrev.00/ 
<http://cr.openjdk.java.net/%7Erkennke/fixsyncroots/webrev.00/>

Ok?

Roman



More information about the shenandoah-dev mailing list