Hello,

On Sunday 09 November 2008 04:11, zooko wrote:
> My Mac buildslave was running at max CPU (I always notice, because  
> the fan comes on).  "top" tells me that the "yes" command is using  
> max CPU for an hour straight.  The buildbot test log says that it is  
> in the middle of a test named "issue1017_whatsnew_stack.sh".  I  
> finally killed that "yes" command and seconds later another one  
> started.  I killed that one too, and then the buildbot tests completed.

Thanks a lot, this description reminded me of a similar problem that existed 
for the GHC buildbots and this time, I seem to have gotten to the bottom: The 
problem is demonstrated by the command

> $ yes | head -n 2
> y
> y
> $

which is used (with larger counts) to generate test files in 
"issue1017_whatsnew_stack.sh". When run via the command line, this works fine 
and the test succeeds. When run via the Python os.system call on a Mac OS X, 
however, the command never terminates. Here is a demonstration of that 
behaviour:

> $ cat runCmd.py
> import os
> os.system('yes | head -n 2');
> $ python runCmd.py
> y
> y
> ^C$

So, the two ys appear, a looping yes program can be observed with top, and C-c 
is needed to terminate. The point of this is that buildbot, as far as I know, 
is a Python program, so this may be the reason why we see this looping 
behaviour on the Mac OS X buildbot slaves.

As a side note, on a Linux system, the same Python program reacts like this:

> $ python runCmd.py
> y
> y
> yes: standard output: Broken pipe
> yes: write error
> $

So the loop is avoided, but yes nevertheless reacts differently from when it 
is run directly from the command line.

I will submit a patch for "issue1017_whatsnew_stack.sh" that generates test 
files using a different mechanism shortly.

> ...

Thanks and best regards
Thorkil
_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to