RFR: 8365556: ObjectMonitor::try_lock_or_add_to_entry_list() returns true with the wrong state of the node

Patricio Chilano Mateo pchilanomate at openjdk.org
Fri Aug 15 14:40:11 UTC 2025


On Fri, 15 Aug 2025 07:22:02 GMT, Anton Artemov <duke at openjdk.org> wrote:

> Hi, please consider the following change:
> 
> `ObjectMonitor::try_lock_or_add_to_entry_list() `does not change the node state to `TS_RUN `in case of a successful acquisition of the object monitor. In certain cases this can break the guarantee statement in the `ObjectMonitor::wait()` method and lead to a crash. The missing statement is added.
> 
> Tested in tiers 1 - 5.

I'm fine with the fix, I was just confused about the mention of the crash. I would add `assert(node->TState == ObjectWaiter::TS_RUN, "");` at the top though to avoid surprises.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/26794#issuecomment-3191657249


More information about the hotspot-runtime-dev mailing list