It turns out that there's a bug in Python ( http://bugs.python.org/issue2320 ) where subprocess.Popen() may get corrupted if you call it from multiple threads. The result is that trying to close the child file descriptors may not work properly, and as a result we end up not cleaning up test_shell / DumpRenderTree properly when we stop it. Workaround is to call subprocess.Popen() with close_fds=True .
Created attachment 49764 [details] patch to spawn and stop dumprendertree/test_shell properly
Comment on attachment 49764 [details] patch to spawn and stop dumprendertree/test_shell properly We really need to wrap this stuff in some helper functions. But this is better than what we had.
Yeah, I think I can refactor the common driver code up into base.py ; I will look at doing that in a separate change.
I feel like this code is copy/pasted twice. Can't we factor it into a common base class? (Not a requirement before landing this patch.)
Committed r55388: <http://trac.webkit.org/changeset/55388>
Committed r55391: <http://trac.webkit.org/changeset/55391>