RFR: 8345493: JFR: JVM.flush hangs intermittently [v2]

Markus Grönlund mgronlun at openjdk.org
Wed Jan 15 13:04:59 UTC 2025


> Greetings,
> 
> This is the fix for JDK-8345493.
> 
> Problem Summary:
> 1. Threads calling JVM.begin_recording() and JVM.end_recording() only hold the PlatformRecorder lock (not the MetadataRepository lock)
> 2. The periodic flush thread only holds the MetadataRepository lock, not the PlatformRecorder lock.
> 
> Problem solution:
> The periodic flush thread must acquire both the PlatformRecorder lock and the MetadataRepository lock (in that order). 
> 
> Testing: jdk_jfr, stress testing.
> 
> Thanks
> Markus

Markus Grönlund has updated the pull request incrementally with two additional commits since the last revision:

 - revert notify_all()
 - FlushTask to acquire PlatformRecorder and MetadataRepository locks

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23105/files
  - new: https://git.openjdk.org/jdk/pull/23105/files/742f391c..5c8e9f10

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23105&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23105&range=00-01

  Stats: 10 lines in 3 files changed: 7 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/23105.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23105/head:pull/23105

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


More information about the hotspot-jfr-dev mailing list