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