8320959: jdk/jfr/event/runtime/TestShutdownEvent.java crash with CONF=fastdebug -Xcomp
Co-authored-by: Markus Grönlund <mgronlun@openjdk.org> Reviewed-by: mgronlun
This commit is contained in:
parent
f577385fc8
commit
bad5edf146
@ -105,13 +105,15 @@ static void commit(HelperType& helper) {
|
|||||||
assert(thread != nullptr, "invariant");
|
assert(thread != nullptr, "invariant");
|
||||||
if (thread->is_Java_thread()) {
|
if (thread->is_Java_thread()) {
|
||||||
JavaThread* jt = JavaThread::cast(thread);
|
JavaThread* jt = JavaThread::cast(thread);
|
||||||
if (jt->thread_state() != _thread_in_vm) {
|
if (jt->thread_state() == _thread_in_native) {
|
||||||
assert(jt->thread_state() == _thread_in_native, "invariant");
|
|
||||||
// For a JavaThread to take a JFR stacktrace, it must be in _thread_in_vm. Can safepoint here.
|
// For a JavaThread to take a JFR stacktrace, it must be in _thread_in_vm. Can safepoint here.
|
||||||
ThreadInVMfromNative transition(jt);
|
ThreadInVMfromNative transition(jt);
|
||||||
event.commit();
|
event.commit();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// If a thread comes here still _thread_in_Java, which can happen for example
|
||||||
|
// when loading the disassembler library in response to traps in JIT code - all is ok.
|
||||||
|
// Since there is no ljf, an event will be committed without a stacktrace.
|
||||||
}
|
}
|
||||||
event.commit();
|
event.commit();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user