RFR (XS): 8233792: TestG1ParallelPhases.java fails with phase NonYoungFreeCSet not found (2)

Thomas Schatzl thomas.schatzl at oracle.com
Mon Nov 11 15:44:27 UTC 2019


Hi all,

   can I have reviews for this small test fix to avoid this test failing 
sometimes?

The tests tries to force mixed gcs to wait for a particular JFR event 
only sent at that time.
The way it forces those is a bit wrong: in some cases it may happen that 
at the time it starts a concurrent marking, another one just finished 
without being able to clean out the old gen. This means that the initial 
mark for this forced marking will be upgraded to a full gc (which also 
ends that marking), and the following forced young collections are 
young-only gcs only.

In total, no mixed gcs happen in that case, and so that JFR event is 
never sent.

The fix is to make sure that before forcing mixed gc (which works) we 
force the heap into a state where the upgrade to full gc may not happen 
- by forcing a full gc.

Without the patch the fails like 6 times in 4000 runs, with the change 
it does not fail after 3k runs.

CR:
https://bugs.openjdk.java.net/browse/JDK-8233792
Webrev:
http://cr.openjdk.java.net/~tschatzl/8233792/webrev/
Testing:
see above.

Thanks,
   Thomas



More information about the hotspot-gc-dev mailing list