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