RFR: Generic verification is possible only at Shenandoah safepoints
Aleksey Shipilev
shade at redhat.com
Wed Nov 29 12:35:48 UTC 2017
After recent assert change, Verifier now check if it is at Shenandoah safepoint. There is one path
where Verifier can be called outside of Shenandoah safepoint, and that is Generic heap verification.
Prevent that from happening:
diff -r 46091fe1a0bc src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Mon Nov 27 18:42:57 2017 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Nov 29 13:33:05 2017 +0100
@@ -1356,7 +1356,7 @@
}
void ShenandoahHeap::verify(VerifyOption vo) {
- if (SafepointSynchronize::is_at_safepoint() || ! UseTLAB) {
+ if (ShenandoahSafepoint::is_at_shenandoah_safepoint() || ! UseTLAB) {
if (ShenandoahVerify) {
verifier()->verify_generic(vo);
} else {
This fixes intermittent assertion failure on VM shutdown.
Testing: hotspot_gc_shenandoah
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list