RFR: Test failures after "Reinstate single-threaded reference processing"

Roman Kennke roman at kennke.org
Wed Oct 17 07:25:59 UTC 2018


Ok. Sorry, I guess I did not read the whole comment.

Roman

> 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