# HG changeset patch # User zgu # Date 1556719971 14400 # Wed May 01 10:12:51 2019 -0400 # Node ID c9b9daf927f8abce8572ddeaf2c8e0a678f99fd6 # Parent 2a84926c32908b95558c810cf0f047f2cd4e0224 [backport] 8223184: Shenandoah: Missing roots in SRP::process_all_roots_slow Reviewed-by: shade diff --git a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp @@ -80,6 +80,14 @@ SystemDictionary::oops_do(oops); StringTable::oops_do(oops); + AlwaysTrueClosure always_true; + WeakProcessor::weak_oops_do(&always_true, oops); + JvmtiExport::weak_oops_do(&always_true, oops); + + if (ShenandoahStringDedup::is_enabled()) { + ShenandoahStringDedup::oops_do_slow(oops); + } + // Do thread roots the last. This allows verification code to find // any broken objects from those special roots first, not the accidental // dangling reference from the thread root.