[Python-checkins] GH-88050: fix race in closing subprocess pipe in asyncio (#97951)

gvanrossum webhook-mailer at python.org
Thu Oct 6 13:18:29 EDT 2022


https://github.com/python/cpython/commit/e2e6b95c0342247ed1a761b6e149ac579a8722dd
commit: e2e6b95c0342247ed1a761b6e149ac579a8722dd
branch: main
author: Kumar Aditya <59607654+kumaraditya303 at users.noreply.github.com>
committer: gvanrossum <gvanrossum at gmail.com>
date: 2022-10-06T10:18:19-07:00
summary:

GH-88050: fix race in closing subprocess pipe in asyncio  (#97951)

Check for None when iterating over `self._pipes.values()`.

files:
M Lib/asyncio/base_subprocess.py

diff --git a/Lib/asyncio/base_subprocess.py b/Lib/asyncio/base_subprocess.py
index c2ca4a2792f6..e15bb4141fc0 100644
--- a/Lib/asyncio/base_subprocess.py
+++ b/Lib/asyncio/base_subprocess.py
@@ -216,7 +216,9 @@ def _process_exited(self, returncode):
             self._proc.returncode = returncode
         self._call(self._protocol.process_exited)
         for p in self._pipes.values():
-            p.pipe.close()
+            if p is not None:
+                p.pipe.close()
+
         self._try_finish()
 
     async def _wait(self):



More information about the Python-checkins mailing list