[Buildbot-devel] Where did my stdout go?

Greg Ward gerg.ward+buildbot at gmail.com
Tue Nov 6 02:17:46 UTC 2007


On Nov 5, 2007 1:11 PM, I wrote:
> Crap.  I spoke too soon.  It worked perfectly with redirecting stdout
> from the command line; it did not work inside Buildbot.
[...]
>   File "c:\Python24\lib\subprocess.py", line 413, in call
>     return Popen(*args, **kwargs).wait()
>   File "c:\Python24\lib\subprocess.py", line 534, in __init__
>     (p2cread, p2cwrite,
>   File "c:\Python24\lib\subprocess.py", line 594, in _get_handles
>     p2cread = self._make_inheritable(p2cread)
>   File "c:\Python24\lib\subprocess.py", line 635, in _make_inheritable
>     DUPLICATE_SAME_ACCESS)
> TypeError: an integer is required

Stil broken, and nothing I pass to subprocess.call() (or Popen()) will
make it work.  And this stack trace never happens when I run my test
program from the command line; it's only when running under Buildbot
that subprocess barfs.  So there's *something* strange about the
buildslave execution environment that breaks Python's subprocess
module (at least with 2.4.4).

I went so far as to pass "stdout=PIPE, stderr=PIPE" and then create
two threads to read the child's stdout/stderr and write them to
sys.stdout/sys.stderr.   No luck.  subprocess.call() blows up in
exactly the same way when I pass "stdout=PIPE" as when I pass
"stdout=sys.stdout".

I guess I'll try redirecting to a file and dumping that.  Yuck.

Greg




More information about the devel mailing list