RFR: 8366659: ObjectMonitor::wait() can deadlock with a suspension request [v4]
Anton Artemov
duke at openjdk.org
Tue Nov 11 12:40:44 UTC 2025
On Mon, 10 Nov 2025 19:53:09 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
>> Anton Artemov has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 18 commits:
>>
>> - Merge remote-tracking branch 'origin/master' into JDK-8366659-OM-wait-suspend-deadlock
>> - 8366659: Added a comment to a boolean arg for enter()
>> - Merge remote-tracking branch 'origin/master' into JDK-8366659-OM-wait-suspend-deadlock
>> - Merge remote-tracking branch 'origin/master' into JDK-8366659-OM-wait-suspend-deadlock
>> - 8366659: Fixed new lines.
>> - Merge remote-tracking branch 'origin/master' into JDK-8366659-OM-wait-suspend-deadlock
>> - 8366659: Removed incorrect assert,
>> - 8366659: Fixed merge conflict
>> - 8366659: Fixed whitespace.
>> - 8366659: Disabled posting JVMTI events in reenter-etner path of wait. Postponed waited event.
>> - ... and 8 more: https://git.openjdk.org/jdk/compare/79fee607...31482ba4
>
> src/hotspot/share/runtime/objectMonitor.cpp line 533:
>
>> 531: }
>> 532:
>> 533: void ObjectMonitor::enter_with_contention_mark(JavaThread* current, ObjectMonitorContentionMark &cm, bool post_jvmti_events) {
>
> In the baseline also: `cm` is passed in, but it only used for this:
> `assert(cm._monitor == this, "must be");`.
>
> This makes me wonder if we're missing some code in `enter_with_contention_mark`
> that is normally done when we are passed an `ObjectMonitorContentionMark`.
Yes, in `enter_with_contention_mark` the mark itself is only for assertion. I agree that is not clear, if there is any issue popping up, we can address it in a separate PR.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27040#discussion_r2514088683
More information about the serviceability-dev
mailing list