> The test failed intermittently with OutOfMemoryError under -Xcheck:jni > -XX:+UseZGC (originally reported with -XX:+ZGenerational, which no longer > exists after JEP 490). Reproduced on current builds at a stable 2% rate: 6 of > 300 runs on four different hosts, all with the original signature. > > GC logs from the failing runs show the 512m heap reaching 100% with ZGC in > back-to-back allocation-stall collections that reclaim almost nothing, ending > in the OOME while Allocator.helper grows its list. The test's live set is > only about 20MB - five threads that each retain one ~2MB list and build one > more - so the heap fills with garbage the in-flight concurrent cycle cannot > yet prove dead: allocation outpaces concurrent collection at this heap size, > with the sampling agent and -Xcheck:jni overhead on top. It is not a leak: > the workload is bounded by construction, and the agent stores sampled objects > via JNI weak global refs only (libHeapMonitorTest.cpp). > > So I try to fix this by raise the test heap from -Xmx512m to -Xmx1g to give > the concurrent > collector headroom, and add the bug id to @bug. > > Testing: 500 repeats of the failing configuration (-Xcheck:jni -XX:+UseZGC, > linux-x64-debug) all pass, where the 2% rate would have predicted about 10 > failures; 100 repeats of the default configuration all pass. A gc-logged run > recording peak occupancy against the new limit is in progress; I'll post the > number here. > > > > > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Shiv Shah has updated the pull request incrementally with one additional commit since the last revision: Remove bug tag and update copyright year ------------- Changes: - all: https://git.openjdk.org/jdk/pull/32229/files - new: https://git.openjdk.org/jdk/pull/32229/files/00afd994..8c24fd30 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=32229&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=32229&range=00-01 Stats: 2 lines in 1 file changed: 0 ins; 1 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/32229.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/32229/head:pull/32229 PR: https://git.openjdk.org/jdk/pull/32229
