RFR: 8351484: Race condition in max stats in MonitorList::add [v2]
Zhengyu Gu
zgu at openjdk.org
Mon Mar 10 19:37:21 UTC 2025
On Mon, 10 Mar 2025 19:34:40 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> See bug for the description of the race. New gtest test case reliably catches fire on my 5950X desktop without this fix.
>>
>> I needed to add the proper constructor for `MonitorList` to make it testable. In our regular code, it is statically allocated, so its fields are implicitly initialized.
>>
>> I also made counter updates `_relaxed` for completeness.
>>
>> Additional testing:
>> - [x] Linux x86_64 server fastdebug, new test now passes
>> - [x] GHA
>
> Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision:
>
> - Can check <=
> - Object handle
src/hotspot/share/runtime/synchronizer.cpp line 83:
> 81: do {
> 82: old_max = Atomic::load(&_max);
> 83: if (count < old_max) {
Can breakout when `count == old_max`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23961#discussion_r1987903286
More information about the hotspot-runtime-dev
mailing list