8223184: Shenandoah: Missing roots in SRP::process_all_roots_slow
Reviewed-by: shade
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp Wed May 01 08:56:38 2019 -0400
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp Wed May 01 10:12:51 2019 -0400
@@ -123,6 +123,14 @@
ObjectSynchronizer::oops_do(oops);
SystemDictionary::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.