On Fri, 11 Dec 2020 17:25:33 GMT, Patricio Chilano Mateo <pchilanom...@openjdk.org> wrote:
> Hi, > > Please review the following small fix for test > RemovingUnixDomainSocketTest.java. As explained in the bug comments, the > issue is due to having two different StreamPumper objects consuming from the > same stderr, one created by ProcessTools.startProcess() and another by > OutputAnalyzer(). In the failing cases the StreamPumper processing thread > created in ProcessTools.startProcess() consumes the first part of the > deprecation message while the one created in OutputAnalyzer consumes the > rest. Since out.getStderr() is not empty and does not contain the string "VM > warning:", the test fails. > > I simply replaced the ProcessTools.startProcess() call by a call to start() > on the ProcessBuilder object, which doesn't use StreamPumper. I added > stderrShouldBeEmptyIgnoreDeprecatedWarnings(), since as mentioned in 8248162 > we might not want to hide all warning messages. > > Without the patch I can consistently reproduce the issue. With the patch the > test always passes. > > Thanks, > Patricio Changes requested by amenkov (Reviewer). test/hotspot/jtreg/serviceability/attach/RemovingUnixDomainSocketTest.java line 70: > 68: > 69: out.shouldHaveExitValue(0); > 70: out.stderrShouldBeEmptyIgnoreDeprecatedWarnings(); Looked at the fix one more time. I suppose this new method is not needed as a the message about deprecation is VM warning and should be handled by stderrShouldBeEmptyIgnoreVMWarnings. Also this new method will fails if jcmd prints some other VM warning ------------- PR: https://git.openjdk.java.net/jdk/pull/1749