[Python-checkins] [3.11] gh-104340: Suppress warning about unawaited exception for closed pipe stdin (GH-104586) (#104594)

gvanrossum webhook-mailer at python.org
Wed May 17 20:09:31 EDT 2023


https://github.com/python/cpython/commit/a8fc8b7e81e1e830771758a00312b7cea2803085
commit: a8fc8b7e81e1e830771758a00312b7cea2803085
branch: 3.11
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: gvanrossum <gvanrossum at gmail.com>
date: 2023-05-18T00:09:12Z
summary:

[3.11] gh-104340: Suppress warning about unawaited exception for closed pipe stdin (GH-104586) (#104594)

(cherry picked from commit 7fc8e2d4627cdba5cb0075c9052ed6f4b6ecd36d)

Co-authored-by: Guido van Rossum <guido at python.org>

files:
A Misc/NEWS.d/next/Library/2023-05-17-20-03-01.gh-issue-104340.kp_XmX.rst
M Lib/asyncio/subprocess.py

diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py
index cd10231f710f..c380bbb0ee93 100644
--- a/Lib/asyncio/subprocess.py
+++ b/Lib/asyncio/subprocess.py
@@ -81,6 +81,9 @@ def pipe_connection_lost(self, fd, exc):
                 self._stdin_closed.set_result(None)
             else:
                 self._stdin_closed.set_exception(exc)
+                # Since calling `wait_closed()` is not mandatory,
+                # we shouldn't log the traceback if this is not awaited.
+                self._stdin_closed._log_traceback = False
             return
         if fd == 1:
             reader = self.stdout
diff --git a/Misc/NEWS.d/next/Library/2023-05-17-20-03-01.gh-issue-104340.kp_XmX.rst b/Misc/NEWS.d/next/Library/2023-05-17-20-03-01.gh-issue-104340.kp_XmX.rst
new file mode 100644
index 000000000000..5b03622df6a2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-05-17-20-03-01.gh-issue-104340.kp_XmX.rst
@@ -0,0 +1 @@
+When an ``asyncio`` pipe protocol loses its connection due to an error, and the caller doesn't await ``wait_closed()`` on the corresponding ``StreamWriter``, don't log a warning about an exception that was never retrieved. After all, according to the ``StreamWriter.close()`` docs, the ``wait_closed()`` call is optional ("not mandatory").



More information about the Python-checkins mailing list