RFR: 8302351: "assert(!JavaThread::current()->is_interp_only_mode() || !nm->method()->is_continuation_enter_intrinsic() || ContinuationEntry::is_interpreted_call(return_pc)) failed: interp_only_mode but not in enterSpecial interpreted entry" in fixup_callers_callsite
Patricio Chilano Mateo
pchilanomate at openjdk.org
Wed May 31 01:51:59 UTC 2023
On Wed, 31 May 2023 01:08:56 GMT, Dean Long <dlong at openjdk.org> wrote:
>> Yes, that works. I can do that but I'll wait since we might not go with this solution after all.
>
>> Yes, that works. I can do that but I'll wait since we might not go with this solution after all.
>
> Is there an alternative solution you have in mind?
So we can continue with this solution and just special case _linkToNative to always return the verified_code_entry(). The other option would be to just remove the assert in fixup_callers_callsite() added in 8288949 to fix this crash. It doesn't solve the underlying issue where after a change to interpreter only mode we still continue in compiled code, but this is not specific to Continuation.enterSpecial and Continuation.enter as the assert reads. With any caller-callee we face the same issue. This is a long standing bug that is described in 8218403 as you have filed already.
Now if we continue with this solution the question would be, is _linkToNative the only method that doesn't have an interpreted version? Or are there more special cases to cover?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14108#discussion_r1210997684
More information about the hotspot-dev
mailing list