RFR: Test failures after "Reinstate single-threaded reference processing"
Aleksey Shipilev
shade at redhat.com
Wed Oct 17 07:23:23 UTC 2018
Current tier3_gc_shenandoah is broken in release, because critical WeakProcessor block is ASSERT-ed
out, contrary to what comment says:
// Process leftover weak oops: update them, if needed (using parallel version),
// or assert they do not need updating (using serial version) otherwise.
// Weak processor API requires us to visit the oops, even if we are not doing
// anything to them.
if (_heap->has_forwarded_objects()) {
...
} else {
...
#ifdef ASSERT
ShenandoahWeakAssertNotForwardedClosure cl;
WeakProcessor::weak_oops_do(is_alive.is_alive_closure(), &cl);
#endif
}
Fix:
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Tue Oct 16 22:59:23 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Wed Oct 17 09:14:09 2018 +0200
@@ -715,14 +715,13 @@
&complete_gc, &executor,
&pt);
-#ifdef ASSERT
ShenandoahWeakAssertNotForwardedClosure cl;
WeakProcessor::weak_oops_do(is_alive.is_alive_closure(), &cl);
-#endif
}
Testing: tier3_gc_shenandoah (release)
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list