RFR: 8316401: sun/tools/jhsdb/JStackStressTest.java failed with "InternalError: We should have found a thread that owns the anonymous lock"
Chris Plummer
cjplummer at openjdk.org
Mon Sep 25 19:21:11 UTC 2023
On Mon, 25 Sep 2023 18:32:19 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
>> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java line 247:
>>
>>> 245: // Java code and locking state can change at any time. This code is not
>>> 246: // expected to be precise, so we return null here.
>>> 247: return null;
>>
>> If the JVM is in a consistent state, do we expect that this should not happen? If so, then a warning message would be the usual SA approach. Basically let the user know we detected an issue rather than just quietly succeeding.
>
> Yes. But unless we run this at a safepoint, there is no consistent state when we race with locking. I don't think we want to spam users with warnings whenever we run into anonymous owners (which is not too infrequent). Existing (pre-lightweight-) locking doesn't print warnings either, when a thread that's expected to lock on an object has moved on or otherwise encounters racy state.
I need a better understanding of anonymous owners and the race you think is going on here. 99+% of the time if we are not at a safepoint, pretty much everything still works fine with SA. Safe points guarantee safe access, but not being at a safepoint does not guarantee there will be an issue for SA. It usually still works, and we try to report when it doesn't.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15907#discussion_r1336297000
More information about the serviceability-dev
mailing list