summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2023-05-17 23:45:11 (GMT)
committerGitHub <noreply@github.com>2023-05-17 23:45:11 (GMT)
commit7fc8e2d4627cdba5cb0075c9052ed6f4b6ecd36d (patch)
treef67ed5c5d2e2dd07fcc9f9fc130686232a48fa5d
parentb27fe67f3c643e174c3619b669228ef34b6d87ee (diff)
downloadcpython-7fc8e2d4627cdba5cb0075c9052ed6f4b6ecd36d.zip
cpython-7fc8e2d4627cdba5cb0075c9052ed6f4b6ecd36d.tar.gz
cpython-7fc8e2d4627cdba5cb0075c9052ed6f4b6ecd36d.tar.bz2
gh-104340: Suppress warning about unawaited exception for closed pipe stdin (#104586)
-rw-r--r--Lib/asyncio/subprocess.py3
-rw-r--r--Misc/NEWS.d/next/Library/2023-05-17-20-03-01.gh-issue-104340.kp_XmX.rst1
2 files changed, 4 insertions, 0 deletions
diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py
index 50727ca..c4e5ba2 100644
--- a/Lib/asyncio/subprocess.py
+++ b/Lib/asyncio/subprocess.py
@@ -81,6 +81,9 @@ class SubprocessStreamProtocol(streams.FlowControlMixin,
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 0000000..5b03622
--- /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").