On Fri, 23 Feb 2024 21:55:15 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
> PerfMapTest.java issues the Compiler.perfmap jcmd with a filename argument to > write the perfmap to. It does this in 3 different modes. 2 of the modes > result in a perfmap file being left in the tmp directory that is not removed > after the test executes (and should be removed). The 3rd mode creates the > perfmap file in the directory specified by the test.dir property, and is ok > to leave the file there. I've added code to delete the /tmp files that are > created. > > I did a bit of extra testing by hand. I created `/tmp/perf-<pid>.map` as > root. As expected the Files.deleteIfExists() call threw an exception due to > the lack of permissions to delete the file. However, I then realized the file > had a size of 0, which means the test was not even doing a proper job of > testing that the perfrmap jcmd was working. In other words, the test should > have failed long before getting to the Files.deleteIfExists(), so I added a > size check to make sure it fails when the file is not written to. So the STDOUT: and STDERR: messages are from jtreg for the test process itself, which is also including any stdout and stderr output produced while executing dcmd using jmx. So following message is on STDOUT: `[3.000s][warning][codecache] Failed to create /tmp/perf-<pid>.map for perf map` And the following message is to the target/test process STDERR: `Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file /tmp/perf-<pid>.map due to Permission denied` The dcmd output is captured separately and is referred to as being on stdout and stderr. These are the ones we check to make sure they are empty, and unfortnately they are empty when there is an error because the messages were not sent to the dcmd output stream. I don't see how using PidJcmdExecutor helps. Doesn't it suffer from the same issue w.r.t. the warning/error messages missing? The output you are showing in your example comes from the jcmd process itself, not from the target VM. ------------- PR Comment: https://git.openjdk.org/jdk/pull/17992#issuecomment-1971562377