RFR 8215047: Task terminators do not complete termination in consistent state

zgu at redhat.com zgu at redhat.com
Thu Jan 3 15:49:12 UTC 2019


Threads that enter termination protocol, should always see the same
termination result, terminated or aborted. And terminator should 
always complete in one of two following states:

Terminated: _offered_termination == _n_threads (all threads arrived and
terminated)
Aborted:   _offered_termination = 0 (none of threads completed)

Current implementation does not guarantee that, so that, it can leave
terminator in inconsistent states. The inconsistent states can trigger
assertion failure when reset the terminator for reuse (vs.
reset_for_reuse() method)
 

Bug: https://bugs.openjdk.java.net/browse/JDK-8215047
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8215047/webrev.00/index.htm
l

Test:

  hotspot_gc on Linux x64 (fastdebug and release)

Thanks,

-Zhengyu


More information about the hotspot-gc-dev mailing list