[issue5673] Add timeout option to subprocess.Popen

Pablo Bitton report at bugs.python.org
Sun Aug 8 18:07:39 CEST 2010


Pablo Bitton <pablo.bitton at gmail.com> added the comment:

I'd like to report a problem I encountered with the discussed use pattern using subprocess-timeout-v5.patch on linux. I don't have python3 installed at work, sorry.

When running:
p = subprocess.Popen("tcpdump -i eth0 > file &", stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, universal_newlines=True)
try:
    out, err = p.communicate(timeout=1)
except subprocess.TimeoutExpired:
    p.kill()
    out, err = p.communicate()

After the timeout happens, the last line raises a ValueError: I/O operation on closed file.

The exception is thrown from the register_and_append call for self.stdout in _communicate_with_poll. I'm sorry again for not being able to attach the full traceback.

The problem doesn't reproduce without the '&' or the '> file', and doesn't reproduce with other executables I've tried.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue5673>
_______________________________________


More information about the Python-bugs-list mailing list