RFR: JDK-8265298: Hard VM crash when deadlock between "access" and higher ranked lock is detected
Aleksey Shipilev
shade at openjdk.java.net
Thu Apr 15 19:47:32 UTC 2021
On Thu, 15 Apr 2021 19:41:41 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> test/hotspot/gtest/runtime/test_mutex_rank.cpp line 210:
>>
>>> 208: monitor_rank_access->lock_without_safepoint_check();
>>> 209: monitor_rank_leaf->lock_without_safepoint_check();
>>> 210: monitor_rank_leaf->wait_without_safepoint_check(1);
>>
>> If you want to exercise the wait() error case you should lock the leaf lock first and then the access one. Then you will get the assert at wait_without_safepoint_check(1). You will have to fix the error message that we check for above to be the one used in the wait case.
>
> The intent is to lock `access` first, then `leaf` -- after all, that was the issue I initially found. About `wait`: I copy-pasted the shape of the test from the `monitor_wait_rank_special` above. I thought it was dubious that we basically expect to assert at `monitor_rank_leaf->lock_without_safepoint_check();`, but thought having `wait` makes the code a bit more readable. I can just remove `wait` here.
Ah, you mean the test checks the attempt to wait! Right, let me fix that.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3524
More information about the hotspot-runtime-dev
mailing list