RFR(S) 8166364: fatal error: acquiring lock DirtyCardQ_CBL_mon/16 out of order with lock Module_lock/6 -- possible deadlock

harold seigel harold.seigel at oracle.com
Fri Oct 7 15:20:17 UTC 2016


Hi,

Please review this fix for JDK-8166364.

This fix moves the setting of the module fields in the class mirrors of 
the fixup_module_list outside of the Module_lock.  The determination of 
whether a mirror should be added to the fixup_module_list is still done 
under Module_lock as is the defining of module java.base.  This prevents 
any synchronization issues with a mirror being erroneously added to the 
fixup_module_list after module java.base is defined.  The other piece is 
that the VM, in Modules::define_javabase_module(), guarantees under 
Module_lock that only one thread will ever successfully define module 
java.base.

Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8166364/

JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8166364

The fix was tested with the JCK Lang and vm tests, and JTreg hotspot, 
java/io, java/lang, and java/util tests using both fastdebug and 
slowdebug builds.  The nsk cololocated and the non-colocated quick tests 
were also run against a slowdebug build.

Thanks, Harold



More information about the hotspot-runtime-dev mailing list