Process.waitFor() may hang if subprocess has live descendants (lnx)

Alan Bateman Alan.Bateman at oracle.com
Tue Aug 31 08:51:22 UTC 2010


Martin Buchholz wrote:
> This is a bug report with fix.
>
> My code in UNIXProcess.java.linux introduced a hang if the subprocess 
> terminates, but it has remaining descendants that keep the pipe file 
> descriptors open.
>
> Here's a fix:
>
> http://cr.openjdk.java.net/~martin/webrevs/openjdk7/ProcessHang/ 
> <http://cr.openjdk.java.net/%7Emartin/webrevs/openjdk7/ProcessHang/>
>
> Please review.
>
> Alan, there are remaining (pre-existing) thorny issues with proper 
> handling of process streams and asynchronous close, that we might want 
> to discuss someday.
>
>
>
> Martin 
I checked 6944584 [1], and as you said, this is just reverting to how it 
used to work. The change looks fine to me. I've created a bug to track 
this and included a thread dump obtained from running the updated test 
without the fix.

  6981138: (process) Process.waitFor() may hang if subprocess has live 
descendants (lnx)

On the test, it might be best to leave out wakeupJeff for now. Even if 
we come up with a solution for the asynchronous close issues then I 
assume this test will need to change anyway because it runs commands 
that are highly platform dependent.

-Alan.

[1] http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/422531c98ba5
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20100831/cdadad14/attachment.html>


More information about the core-libs-dev mailing list