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