RFR: 8325937: runtime/handshake/HandshakeDirectTest.java causes "monitor end should be strictly below the frame pointer" assertion failure on AArch64
Robbin Ehn
rehn at openjdk.org
Thu Oct 3 00:05:41 UTC 2024
On Wed, 2 Oct 2024 18:40:28 GMT, Robbin Ehn <rehn at openjdk.org> wrote:
> Yea, I think there maybe some more issues. For exampel having stores slipping into HandshakeState::process_by_self after the MutexLocker doesn't give me a good feeling. I would suggest doing a more elaborate fix. Maybe a stricter version of the mutex so try_lock and lock releases? I can look more at this next week.
>
> (I don't mind if you choose to ship this as is)
To clarify, process_by_self() may end up in ThreadSelfSuspensionHandshake, where we do:
current->set_thread_state(_thread_blocked);
current->handshake_state()->do_self_suspend();
current->set_thread_state(jts);
I don't find any guarantee that we do a release before the state change, which means e.g. stackwater state stores in StackWatermarkSet::on_safepoint() can happen after we set blocked.
Not sure if that is direct problem or not, but it's not intended. Maybe I'm missing something?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21295#issuecomment-2390081948
More information about the hotspot-runtime-dev
mailing list