RFR: JDK-8180599: Possibly miss to iterate monitors on thread exit

Roman Kennke rkennke at redhat.com
Thu May 18 12:16:45 UTC 2017


As David pointed out here:

http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2017-May/023468.html

The fix to JDK-8180175: ObjectSynchronizer only needs to iterate in-use
monitors introduced a bug where we could potentially miss to iterate
oops in monitors of exiting threads. The proposed fix is as Robbin Ehn
suggested to move the call to omFlush() before we remove the thread from
_thread_list:

http://cr.openjdk.java.net/~rkennke/8180599/webrev.00/
<http://cr.openjdk.java.net/%7Erkennke/8180599/webrev.00/>

This solves the problem because there's no window where monitors would
not appear in any list.

I tested a number of programs and jtreg hotspot_gc tests and it doesn't
show any ill effects.

Ok?

Roman



More information about the hotspot-runtime-dev mailing list