8056154: JVM crash with EXCEPTION_ACCESS_VIOLATION when there are many threads running

Don't make compiled MH intrinsics not entrant when redefining classes

Reviewed-by: kvn, vlivanov
This commit is contained in:
Igor Veresov 2014-09-05 14:39:45 -07:00
parent 5db7b3a4e1
commit e285f3eadc
4 changed files with 11 additions and 2 deletions

View file

@ -448,7 +448,10 @@ class nmethod : public CodeBlob {
// alive. It is used when an uncommon trap happens. Returns true
// if this thread changed the state of the nmethod or false if
// another thread performed the transition.
bool make_not_entrant() { return make_not_entrant_or_zombie(not_entrant); }
bool make_not_entrant() {
assert(!method()->is_method_handle_intrinsic(), "Cannot make MH intrinsic not entrant");
return make_not_entrant_or_zombie(not_entrant);
}
bool make_zombie() { return make_not_entrant_or_zombie(zombie); }
// used by jvmti to track if the unload event has been reported