RFR: 8198668: MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java still failing
Kevin Walls
kevinw at openjdk.org
Tue Jun 28 11:30:06 UTC 2022
Test has been problemlisted for a long time due to intermittent failures.
This is a difficult test as it tries to monitor usage thresholds on Memory Pools which are outside its control.
Not just Java heap pools, where the allocation it makes may or may not affect a particuclar pool, but non-heap pools such as CodeHeap and Metadata, where other activity in the VM can affect their usage and surprise the test.
The test iterates JMX memory pools where thresholds are supported, sets a threshold one byte higher than current usage, and makes an allocation. This only makes sense on Java heap pools. It is tempting to skip non-heap pools, but this test can still give a sanity test about threshold behaviour. That is actually its main purpose, as the allocation is unlikely to affect the pool being tested.
With the changes here, I'm seeing the test and all its variations pass reliably, i.e. 50 iterations in each tested platform.
Skip testing a non-heap memory pool, e.g. CodeHeap, if it is hitting the threshold while we test, because that means it is changing outside our control. Also re-test isExceeded on failure, as fetching the usage and isExceeded is a race.
Logging of more pool stats to better understand failures.
-------------
Commit messages:
- 8198668: MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java still failing
Changes: https://git.openjdk.org/jdk/pull/9309/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9309&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8198668
Stats: 70 lines in 2 files changed: 32 ins; 10 del; 28 mod
Patch: https://git.openjdk.org/jdk/pull/9309.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/9309/head:pull/9309
PR: https://git.openjdk.org/jdk/pull/9309
More information about the serviceability-dev
mailing list