RFR: 8235366: ZGC: Kitchensink.java fails in ZBarrier::should_mark_through

Per Liden per.liden at oracle.com
Mon Dec 9 10:57:47 UTC 2019

JDK-8230661 introduced a bug where we can accidentally "downgrade" an 
oop while healing it. More specifically, during the marking phase, an 
AS_NO_KEELALIVE load racing with finalizable marking could leave the oop 
in a remapped state (instead of finalizable marked state).

The problem is the conditions for when to re-try a failing heal CAS. 
Instead of using an is_good_or_null() check, this patch uses the barrier 
fast_path() in the self_heal() function to avoid "downgrading" oops.

Bug: https://bugs.openjdk.java.net/browse/JDK-8235366
Webrev: http://cr.openjdk.java.net/~pliden/8235366/webrev.1

Testing: ZGC tier1-8


More information about the hotspot-gc-dev mailing list