On Wed, 24 May 2023 20:03:47 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:
> How do you test the issue is fixed now? Is there any test case which fails > without your fix and passes with it? Hi - I tested manually, renaming the java executable to something with a space, then query the OperatingSystem MBean, and see something like: CommittedVirtualMemorySize = (java.lang.Long) 36202319872 (which is the same/similar to another run when not renamed). The problem is seeing a completely wrong value, like: CommittedVirtualMemorySize = (java.lang.Long) 0 These are lines like: $ cat /proc/9496/stat 9496 (java) S 625 9495 607 34823 9635 1077936192 12024 0 0 0 156 22 0 0 20 0 28 0 2172294643 36260237312 30463 18446744073709551615 93928094162944 93928094166632 140724289571696 0 0 0 4 0 16800975 0 0 0 -1 11 0 0 0 0 0 93928094174456 93928094175248 93928124657664 140724289577708 140724289577894 140724289577894 140724289581032 0 That's a different run, where 36260237312 was the value we wanted. If "java" becomes "this is java" (with 2 spaces), then we read field 21, not field 23 from the line of data and show zero. It's quite a niche thing to do so I didn't add a test that copied the java binary under test to a new name with a space in it... The code that does the strrchr to scan from the last ) and then parses the remainder has been with us for some time. 8-) ------------- PR Comment: https://git.openjdk.org/jdk/pull/14107#issuecomment-1561893976