wildSmurf has asked for the wisdom of the Perl Monks concerning the following question:
I'm seeing IPC::Run spawn a child process which runs as expected, but when the child completes and exits, the parent doesn't notice until the timeout has completely elapsed. The child is listed as a zombi by ps(1). I run this:
and get this:$ time perl -MIPC::Run=run,timeout,timer -lwe 'run(["/bin/sleep", 5], +timeout(10));'
0m11.129s (0.100u 0.000s)11 seconds elapsed because the parent didn't cleanup the child process when it finished.
If I simply change the timeout to 3 seconds, I get the expected behavior of IPC::Run throwing an exception.
I've installed IPC::Run v0.80 with the CPAN shell, with a package I built myself and with a Fedora package I downloaded, as well as a Fedora v0.79 package I downloaded, all give the same result.
I've used IPC::Run before without this problem on the same architecture I have now and can't find the culprit.
Host: Linux kolsch.srv.office 2.6.9-55.0.2.EL.xs4.0.1.495xenU #1 SMP Mon Aug 13 09:19:16 EDT 2007 i686 i686 i386 GNU/Linux
OS: CentOS release 4.5 (Final)
Perl: 5.8.5
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: IPC::Run not seeing exit of short child run with long timeout
by pc88mxer (Vicar) on Mar 15, 2008 at 00:10 UTC | |
by wildSmurf (Initiate) on Mar 15, 2008 at 01:09 UTC |