RFR: 8299560: Assertion failed: currentQueryIndex >= 0 && currentQueryIndex < numberOfJavaProcessesAtInitialization

Kevin Walls kevinw at openjdk.org
Fri Sep 15 08:48:53 UTC 2023


This assert happens rarely, but is seen in testing a few times.

getCurrentQueryIndexForProcess comments that it can return -1, but it asserts that the value is >=0

If we let it return -1 for failure as its comment documents, the caller can handle the failure and not assert and end the JVM.  

Conversely, currentQueryIndexForProcess() clearly can return -1 on failure, so add the comment like we already have in getCurrentQueryIndexForProcess().

This assert is not reproducing on demand, but with this change I've done 50+ iterations of the test on windows-x64 and windows-x64-debug in mach5, and hundreds locally.

The test which has been seen to trigger the assert 
"test/jdk/com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java" 
...checks the range of the load value returned, and is happy enough if -1 is the answer.

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

Commit messages:
 - 8299560: Assertion failed: currentQueryIndex >= 0 && currentQueryIndex < numberOfJavaProcessesAtInitialization

Changes: https://git.openjdk.org/jdk/pull/15750/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15750&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8299560
  Stats: 10 lines in 1 file changed: 2 ins; 2 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/15750.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15750/head:pull/15750

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


More information about the serviceability-dev mailing list