[Python-checkins] [3.12] GH-106684: Close `asyncio.StreamWriter` when `asyncio.StreamWriter` is not closed by application (GH-107650) (#107656)

Yhg1s webhook-mailer at python.org
Thu Aug 10 05:24:26 EDT 2023


https://github.com/python/cpython/commit/7853c769067699c79c0d4fe4967e9d8f8b8b0a5e
commit: 7853c769067699c79c0d4fe4967e9d8f8b8b0a5e
branch: 3.12
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Yhg1s <thomas at python.org>
date: 2023-08-10T11:24:22+02:00
summary:

[3.12] GH-106684:  Close `asyncio.StreamWriter` when `asyncio.StreamWriter` is not closed by application (GH-107650) (#107656)

GH-106684: raise `ResourceWarning` when `asyncio.StreamWriter` is not closed (GH-107650)
(cherry picked from commit 41178e41995992bbe417f94bce158de93f9e3188)

Co-authored-by: Kumar Aditya <kumaraditya at python.org>
Co-authored-by: Kumar Aditya <59607654+kumaraditya303 at users.noreply.github.com>

files:
A Misc/NEWS.d/next/Library/2023-08-05-05-10-41.gh-issue-106684.P9zRXb.rst
M Lib/asyncio/streams.py

diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py
index bf15f517e50dc..14861dffce3a8 100644
--- a/Lib/asyncio/streams.py
+++ b/Lib/asyncio/streams.py
@@ -392,6 +392,10 @@ async def start_tls(self, sslcontext, *,
         self._transport = new_transport
         protocol._replace_writer(self)
 
+    def __del__(self):
+        if not self._transport.is_closing():
+            self.close()
+
 
 class StreamReader:
 
diff --git a/Misc/NEWS.d/next/Library/2023-08-05-05-10-41.gh-issue-106684.P9zRXb.rst b/Misc/NEWS.d/next/Library/2023-08-05-05-10-41.gh-issue-106684.P9zRXb.rst
new file mode 100644
index 0000000000000..85bce76229853
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-08-05-05-10-41.gh-issue-106684.P9zRXb.rst
@@ -0,0 +1 @@
+Close :class:`asyncio.StreamWriter` when it is not closed by application leading to memory leaks. Patch by Kumar Aditya.



More information about the Python-checkins mailing list