Commit 9904b22b authored by Victor Stinner's avatar Victor Stinner

Close #12114: fix a potential deadlock in packaging.util._find_exe_version()

Avoid also zombi processes: Popen.communicate() calls its wait() method.
parent 32565b6c
......@@ -74,6 +74,9 @@ class FakePopen:
self.stdout = StringIO(exes[self.cmd])
self.stderr = StringIO()
def communicate(self, input=None, timeout=None):
return self.stdout.read(), self.stderr.read()
class UtilTestCase(support.EnvironRestorer,
support.TempdirManager,
......
......@@ -464,7 +464,7 @@ def _find_exe_version(cmd, pattern=_RE_VERSION):
return None
pipe = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)
try:
stdout, stderr = pipe.stdout.read(), pipe.stderr.read()
stdout, stderr = pipe.communicate()
finally:
pipe.stdout.close()
pipe.stderr.close()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment