RFR: 8235366: ZGC: Kitchensink.java fails in ZBarrier::should_mark_through
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.
Testing: ZGC tier1-8
More information about the hotspot-gc-dev