8310340: assert(_thread->is_interp_only_mode() || stub_caller) failed: expected a stub-caller

Reviewed-by: dholmes, amenkov, sspitsyn
This commit is contained in:
Patricio Chilano Mateo 2025-01-08 21:51:02 +00:00
parent 2e00816ac3
commit ea49537726
2 changed files with 2 additions and 1 deletions

View File

@ -598,7 +598,7 @@ JvmtiEventControllerPrivate::recompute_thread_enabled(JvmtiThreadState *state) {
}
// compute interp_only mode
bool should_be_interp = (any_env_enabled & INTERP_EVENT_BITS) != 0 || has_frame_pops;
bool is_now_interp = state->is_interp_only_mode();
bool is_now_interp = state->is_interp_only_mode() || state->is_pending_interp_only_mode();
if (should_be_interp != is_now_interp) {
if (should_be_interp) {

View File

@ -2603,6 +2603,7 @@ void ThawBase::recurse_thaw_compiled_frame(const frame& hf, frame& caller, int n
|| (stub_caller && f.cb()->as_nmethod()->is_marked_for_deoptimization())) {
// The caller of the safepoint stub when the continuation is preempted is not at a call instruction, and so
// cannot rely on nmethod patching for deopt.
assert(_thread->is_interp_only_mode() || stub_caller, "expected a stub-caller");
log_develop_trace(continuations)("Deoptimizing thawed frame");
DEBUG_ONLY(ContinuationHelper::Frame::patch_pc(f, nullptr));