[16] RFR 8251910: Shenandoah: assert(external_guard || result != __null) failed: Invalid JNI handle

Roman Kennke rkennke at redhat.com
Tue Aug 18 16:17:25 UTC 2020

Hi Zhengyu,

please update the bug summary to e.g. "Shenandoah: Handshake threads
between weak-roots and reset phases"

14 is not relevant anymore because it would not receive any further
updates. I dropped it from the bugreport.

Other than that, looks good to me!

Thank you for fixing this!

Am Dienstag, den 18.08.2020, 11:18 -0400 schrieb Zhengyu Gu:
> Some of concurrent flags, e.g. concurrent_weak/strong_roots, are
> unset 
> concurrently, they are harmless until mark bitmap is reset,
> concurrently.
> In normal cycles, there are GC safepoints, e.g.
> init/final_updateref, 
> between unset concurrent flags and reset mark bitmap, and those 
> safepoints ensure the changes are made visible to all threads.
> However, in rare cases, there are nothing to evacuate and no
> references 
> need to be updated, so that, update reference GC safepoints are
> skipped.
> Under this circumstance, Shenandoah will have to perform thread 
> handshake to ensure the changes are visible before mark bitmap can be
> reset.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8251910
> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8251910/webrev.00/
> Test:
>    hotspot_gc_shenandoah
> Thanks,
> -Zhengyu

More information about the hotspot-gc-dev mailing list