RFR: 8298733: Reconsider monitors_on_stack assert

Fredrik Bredberg fbredberg at openjdk.org
Tue Apr 15 11:51:59 UTC 2025


This PR aims to revert this [8298371: monitors_on_stack extracts unprocessed oops](https://github.com/openjdk/jdk/pull/11582) fix at the same time as we retain the ability to assert that we don't have any monitors on the stack when legacy locking is used.

It does so by moving an assert that ensures that we don't have any monitors on the stack to a place where all stack frames should have been processed. I.e. it's safe to check the frame for any monitor.

A new function called assert_frames_in_continuation_are_safe() asserts that the frames has been processed (i.e. it  safe to revert the [8298371](https://github.com/openjdk/jdk/pull/11582) fix). By keeping that assertion functionality separate from monitors_on_stack() we will be able to keep that assertion after we have removed legacy locking.

In order to recreate the original [problem](https://github.com/openjdk/jdk/pull/11582) and verifying that this PR works used, I used:
`-XX:LockingMode=1 -XX:+UseZGC -XX:+ZVerifyOops -XX:ZCollectionIntervalMajor=0.001 Fuzz.java
`

Also passes tier1-7.

-------------

Commit messages:
 - 8298733: Reconsider monitors_on_stack assert

Changes: https://git.openjdk.org/jdk/pull/24655/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24655&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8298733
  Stats: 61 lines in 2 files changed: 41 ins; 20 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/24655.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24655/head:pull/24655

PR: https://git.openjdk.org/jdk/pull/24655


More information about the hotspot-runtime-dev mailing list