JDK-8342786 : Shenandoah: test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithShenandoah.java tests for event not emitted by Shenandoah
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: repo-shenandoah
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2024-10-22
  • Updated: 2025-03-10
Description
test/hotspot/jtreg/gc/stress/jfr/TestStressBigAllocationGCEventsWithShenandoah.java fails with both Shenandoah and GenShen because they do not produce the expected JFR event.

It's questionable that purely concurrent collectors will produce that exact event, so it would make sense if purely concurrent collectors such as Shen, GenShen (and Z/GenZ) produce other JFR GC events that the test check for the existence of those events. An alternate version of the test would make sense for these collectors.

Meanwhile, the test should be problem-listed for Shen/GenShen. Note that this test didn't exist in openjdk/tip for Shenandoah, but appears to have been introduced (i.e. copied from G1 et al, tests) during GenShen development.
Comments
Could we try having Shenandoah's allocation-failure-trigger call `AllocTracer::send_allocation_requiring_gc_event`?
18-11-2024

One further note: with the default heap size for the test (as used for other collectors), Shenandoah & GenShen will throw an OOM. Given a sufficiently large heap however the test will complete but without emission of the expected events that the test is looking for.vThis is also the case for TestStressAllocationGCEventsWithShenandoah too for the same reason. The expedient thing to do at this time may be to leave the tests as placeholders for the work and to problem-list them for now. (Alternatively, a less desirable approach may be to hold back the tests for now and fix them before including them.)
22-10-2024