diff -r 4cab5edc2950 -r 5d043a159d5c src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp --- a/src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp Fri May 17 15:53:21 2019 +0200 +++ b/src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp Fri May 17 16:02:27 2019 +0200 @@ -248,7 +248,6 @@ } static const char* create_emergency_dump_path() { - assert(JfrStream_lock->owned_by_self(), "invariant"); char* buffer = NEW_RESOURCE_ARRAY_RETURN_NULL(char, JVM_MAXPATHLEN); if (NULL == buffer) { return NULL; @@ -291,7 +290,6 @@ // Caller needs ResourceMark static const char* create_emergency_chunk_path(const char* repository_path) { assert(repository_path != NULL, "invariant"); - assert(JfrStream_lock->owned_by_self(), "invariant"); const size_t repository_path_len = strlen(repository_path); // date time char date_time_buffer[32] = { 0 }; @@ -312,7 +310,6 @@ } static fio_fd emergency_dump_file_descriptor() { - assert(JfrStream_lock->owned_by_self(), "invariant"); ResourceMark rm; const char* const emergency_dump_path = create_emergency_dump_path(); return emergency_dump_path != NULL ? open_exclusivly(emergency_dump_path) : invalid_fd; @@ -325,7 +322,7 @@ void JfrEmergencyDump::on_vm_error(const char* repository_path) { assert(repository_path != NULL, "invariant"); ResourceMark rm; - MutexLocker stream_lock(JfrStream_lock, Mutex::_no_safepoint_check_flag); + const fio_fd emergency_fd = emergency_dump_file_descriptor(); if (emergency_fd != invalid_fd) { RepositoryIterator iterator(repository_path, strlen(repository_path)); @@ -409,10 +406,6 @@ JfrBuffer_lock->unlock(); } - if (JfrStream_lock->owned_by_self()) { - JfrStream_lock->unlock(); - } - if (JfrStacktrace_lock->owned_by_self()) { JfrStacktrace_lock->unlock(); }