Comment 2 for bug 625551

Revision history for this message
Andrew Bennetts (spiv) wrote :

Replacing the.wait() with .communicate() isn't sufficient, as subunit.ProtocolTestCase's run() repeatedly calls readline() on process.stdout without ever reading from stderr. So if the child attempts to write too much to stderr we will deadlock.

So I think the best solution for now is to simply reuse our own stderr, as mgz suggests, by not passing stderr= (or explicitly doing stderr=None). It's hopefully safe to assume that the terminal or whatever is draining both our stdout and stderr reliably! I'd be happy to make a patch that does this if folks agree.