RFR: 8251451: Shenandoah: Remark ObjectSynchronizer roots with I-U

Roman Kennke rkennke at redhat.com
Tue Aug 11 21:15:07 UTC 2020

Observed a very rare crash found in CI, and caught by verification. It
looks like we've got a lone reference from global-list in
ObjectSynchronizer. This list is only used when threads are dying.
ObjectMonitors on this list may be the only remaining reference to an
oop. When running with I-U mode, we don't enqueue the new-value when
creating such ObjectMonitor objects, and thus such objects end up not
being marked.

The proposed fix re-marks through ObjectSynchronizer (when running with
I-U, like we already do for thread-roots and code-roots). That list
should normally be empty or very small.

Bug: https://bugs.openjdk.java.net/browse/JDK-8251451
Webrev: http://cr.openjdk.java.net/~rkennke/JDK-8251451/webrev.00/
Testing: hotspot_gc_shenandoah, hotspot:tier1 (which exhibited that
failure sometimes)



More information about the hotspot-gc-dev mailing list