RFR: 8345750: Shenandoah: Test TestJcmdHeapDump.java#aggressive intermittent assert(gc_cause() == GCCause::_no_gc) failed: Over-writing cause

William Kemper wkemper at openjdk.org
Fri Jan 17 23:22:44 UTC 2025


This occurs when an attempt to produce a heap dump conflicts with a concurrent cycle. The heap dump vm operation attempts to run a cycle directly on the VM thread with no regard for the state of the concurrent collection. Although Shenandoah _is_ technically capable of running an entire _full_ GCs on the vm thread, I would rather not add another dependency on full GCs, nor would I like to cancel an in-progress concurrent GC. Instead, Shenandoah will follow the pattern established ZGC in which the calling thread waits for a concurrent cycle to complete before taking the heap dump.

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

Commit messages:
 - Fix whitespace
 - Do not let heap inspection/dump run GC on VM thread

Changes: https://git.openjdk.org/jdk/pull/23186/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23186&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8345750
  Stats: 23 lines in 4 files changed: 15 ins; 1 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/23186.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23186/head:pull/23186

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


More information about the serviceability-dev mailing list