Re: t7006 sometimes hangs in cronjobs on OS X
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Feb 9, 2011, 19:16 UTC
- Message-ID
- <201102092016.55078.trast@student.ethz.ch>
- In-Reply-To
- <20110209190900.GA8314@sigill.intra.peff.net>
Jeff King wrote:
Show 5 quoted lines
> On Wed, Feb 09, 2011 at 03:38:46PM +0100, Thomas Rast wrote: > > > I have been running a nightly next&pu smoke tester each on RHEL5 and > > OS X. For quite some time (at least a month), t7006 gets stuck > > randomly (i.e., not every night).
BTW, I just noticed when re-reading this that it's a bit confusing. It never hangs on RHEL (i.e. Linux), only on OS X. (And I only reported it now because I only just noticed that I had a month's worth of zombies hanging around. :-)
Show 11 quoted lines
> > 65211 ?? SN 0:00.03 /bin/sh t7006-pager.sh > > 65798 ?? SN 0:00.04 /usr/bin/perl /Users/trast/git-smoke/t/test-terminal.perl git --no-pager log > > 65846 ?? ZN 0:00.00 (git) > > 65847 ?? ZN 0:00.00 (perl5.10.0) > > Hmm. The zombie git process implies to me that git has exited, but for > some reason we are still stuck in the copy-to-terminal loop and haven't > reaped it. But the zombie perl process confuses me. We fork a second > time so that one process copies stderr and the other one copies stdout. > Is the second perl process the stderr copier, and we are still blocking > on copying stdout for some reason?
How do I find out?
> But then why is the command name > different? Is /usr/bin/perl a wrapper script on your platform?
No, it's your average OS X binary (i.e., 'file' says it has an image for every platform etc.).
The command name apparently just changes when it becomes a zombie: when I run perl -e 'if (fork) {sleep 10;} else {sleep 5;}' they first share the command line, but as soon as the child's sleep expires its command line changes to '(perl5.10.0)'.
I'll have to put off the more involved experimentation somewhat :-(
--
Thomas Rast
trast@{inf,student}.ethz.ch