On Mon, 12 Jan 2026 20:51:51 GMT, Roger Riggs <[email protected]> wrote:
>> On Linux and Mac, when a process is started, pipes are created to >> communicate with the child. >> In the case where the stderr is redirected to stdout using >> `ProcessBuilder.redirectErrorStream()`, the pipe is not needed and should >> not be created. >> >> Added a test to check pipe creation when spawning with and without >> `redirectErrorStream(t/f)`. >> Rewrote the extraction of pipes to use `lsof` available on Mac and Linux. >> (previously used Linux /proc/pid/fd/...) >> Converted PipelineLeaksFD test to JUnit. > > Roger Riggs has updated the pull request incrementally with one additional > commit since the last revision: > > Refactored invocation of `lsof` to not use pipes for I/O, using files > instead. > It removes the possibility of side effects that might affect the checking > of pipe usage. Hello Roger, given what's explained in the JBS issue, this change looks reasonable to me. I just have one test related comment which I've added inline. test/jdk/java/lang/ProcessBuilder/PipelineLeaksFD.java line 54: > 52: * @requires os.family == "mac" | (os.family == "linux" & !vm.musl) > 53: * @summary File descriptor leak detection with > ProcessBuilder.startPipeline > 54: * @run junit/othervm -Xint PipelineLeaksFD Is there something in this test (or even `java.lang.Process`) that makes running this test in interpreted mode a necessity? ------------- Marked as reviewed by jpai (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/29143#pullrequestreview-3656896789 PR Review Comment: https://git.openjdk.org/jdk/pull/29143#discussion_r2687310909
