RFR: Generic verification is possible only at Shenandoah safepoints
Roman Kennke
rkennke at redhat.com
Thu Nov 30 11:48:40 UTC 2017
Am 29.11.2017 um 13:35 schrieb Aleksey Shipilev:
> 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.
Ok.
Roman
More information about the shenandoah-dev
mailing list