RFR: 8330253: Skip verify_consistent_lock_order when deoptimizing from monitorenter bytecode.
Vladimir Kozlov
kvn at openjdk.org
Mon Apr 15 17:01:59 UTC 2024
On Mon, 15 Apr 2024 09:15:44 GMT, Axel Boldt-Christmas <aboldtch at openjdk.org> wrote:
> The verification added in [JDK-8329757](https://bugs.openjdk.org/browse/JDK-8329757) will not work then deoptimization occurs on a monitorenter bytecode. The locking may be in a transitional state. This patch will skip the verification when this occurs.
>
> Currently have only seen this reproduce with JVMTI when deoptimization occurs while a java thread is waiting on a contended monitor. However this could potentially be triggered from a VM entry slow path, so simply checking `current_pending_monitor` could be flaky as well. So instead simply avoid verification.
>
> Running JVMTI reproducer. Starting full testing soon.
src/hotspot/share/runtime/deoptimization.cpp line 443:
> 441: }
> 442: #ifdef ASSERT
> 443: if (LockingMode == LM_LIGHTWEIGHT && !realloc_failures && lock_order.is_nonempty()) {
I think ` lock_order.is_nonempty()` check is enough here because it will not be empty only if other two conditions are true.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18782#discussion_r1566164427
More information about the hotspot-dev
mailing list