[Buildbot-devel] Problems with usePTY in buildslave on Solaris

Brian Warner warner-buildbot at lothar.com
Fri Nov 12 22:47:22 UTC 2004

> The cvs update command seems to hang forever, and when I look at twistd.log
> for the buildlsave, I see this  at the end:

Are you using usePTY=1 or usePTY=0 on the buildslave? I've found that PTYs
vary a lot from unix to unix, and falling back to usePTY=0 frequently helps.
You get prettier colors in the log output (red for stderr, black for stdout),
but you tend to lose grandchild test processes when you have to kill off a
build (no process groups)

> File "/opt/ASpy23/lib/python2.3/site-packages/twisted/internet/default.py",
> line 166, in spawnProcess
>     processProtocol, uid, gid, usePTY)
> File "/opt/ASpy23/lib/python2.3/site-packages/twisted/internet/process.py"
> , line 681, in __init__
>     stderr.flush()
> exceptions.IOError: [Errno 9] Bad file number

It is useful to note that line 681 is in the "error in the child process"
path (which includes the case when execvpe fails, for example), so it might
have failed because of a command that couldn't be found, or because it was
told to chdir() into a missing directory. Modifying process.py to write the
error message to a /tmp/err file may be useful.

I suspect that Twisted needs some help w.r.t. PTYs on solaris. Does the
Twisted test suite pass on that machine? (you might also try twisted from SVN
too, we don't have a solaris buildslave and it would be nice to know if
there's something that should be fixed before twisted-2.0 comes out).


More information about the devel mailing list