# HG changeset patch # User dcubed # Date 1530036949 14400 # Node ID 0fb45c3b185e0cfdd7650f9fe5d84a0876abb905 # Parent 07365663f130f2f7a7265e6ab01e8cb48f36d643 8205648: fix for 8205195 breaks secondary error handling Summary: Only grab Threads_lock in VMError::controlled_crash() when we don't already own it. Reviewed-by: sspitsyn, stuefe diff -r 07365663f130 -r 0fb45c3b185e src/hotspot/share/utilities/vmError.cpp --- a/src/hotspot/share/utilities/vmError.cpp Tue Jun 26 14:14:29 2018 -0300 +++ b/src/hotspot/share/utilities/vmError.cpp Tue Jun 26 14:15:49 2018 -0400 @@ -1703,7 +1703,7 @@ // from racing with Threads::add() or Threads::remove() as we // generate the hs_err_pid file. This makes our ErrorHandling tests // more stable. - MutexLockerEx ml(Threads_lock, Mutex::_no_safepoint_check_flag); + MutexLockerEx ml(Threads_lock->owned_by_self() ? NULL : Threads_lock, Mutex::_no_safepoint_check_flag); switch (how) { case 1: vmassert(str == NULL, "expected null"); break;