RFR (S) 8231198: Shenandoah: heap walking should visit all roots most of the time

Aleksey Shipilev shade at redhat.com
Thu Sep 19 14:54:59 UTC 2019


Bug:
  https://bugs.openjdk.java.net/browse/JDK-8231198

Fix:
  https://cr.openjdk.java.net/~shade/8231198/webrev.01/

This reliably reproduces with vmTestbase_nsk_jvmti. We have to match the objects that we walk with
what JVMTI is doing there. Unfortunately, our current code sometimes discovers that unload_classes
is true, and so skips some weak roots, while JVMTI visits them. As the result, the marks for objects
in those weak roots is never reset, and we crash later. The easy way out is to avoid scanning weak
roots only when it matters: during evacuation.

Testing: hotspot_gc_shenandoah, vmTestbase_nsk_jvmti

-- 
Thanks,
-Aleksey




More information about the hotspot-gc-dev mailing list