8212160: JVMTI agent crashes with "assert(_value != 0LL) failed: resolving NULL _value"

Add local deferred event list to thread to post events outside CodeCache_lock.

Reviewed-by: eosterlund, dholmes, sspitsyn
This commit is contained in:
Coleen Phillimore 2019-12-05 16:57:17 -05:00
parent 730d0ecf19
commit 8846a8043d
15 changed files with 297 additions and 90 deletions

View file

@ -2995,7 +2995,7 @@ void JavaThread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
f->do_oop((oop*) &_pending_async_exception);
if (jvmti_thread_state() != NULL) {
jvmti_thread_state()->oops_do(f);
jvmti_thread_state()->oops_do(f, cf);
}
}
@ -3021,6 +3021,10 @@ void JavaThread::nmethods_do(CodeBlobClosure* cf) {
fst.current()->nmethods_do(cf);
}
}
if (jvmti_thread_state() != NULL) {
jvmti_thread_state()->nmethods_do(cf);
}
}
void JavaThread::metadata_do(MetadataClosure* f) {