[Python-checkins] [3.6] bpo-31234, socket.create_connection(): Fix ref cycle (GH-3546) (#3552)

Victor Stinner webhook-mailer at python.org
Wed Sep 13 18:54:39 EDT 2017


https://github.com/python/cpython/commit/d99e85b9f6422dd5e4f2eb1539368fc4003d4c8b
commit: d99e85b9f6422dd5e4f2eb1539368fc4003d4c8b
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Victor Stinner <victor.stinner at gmail.com>
date: 2017-09-13T15:54:34-07:00
summary:

[3.6] bpo-31234, socket.create_connection(): Fix ref cycle (GH-3546) (#3552)

(cherry picked from commit acb9fa79fa6453c2bbe3ccfc9cad2837feb90093)

files:
A Misc/NEWS.d/next/Library/2017-09-13-18-05-56.bpo-31234.lGkcPg.rst
M Lib/socket.py

diff --git a/Lib/socket.py b/Lib/socket.py
index 740e71782af..1ada24d3326 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -711,6 +711,8 @@ def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
             if source_address:
                 sock.bind(source_address)
             sock.connect(sa)
+            # Break explicitly a reference cycle
+            err = None
             return sock
 
         except error as _:
diff --git a/Misc/NEWS.d/next/Library/2017-09-13-18-05-56.bpo-31234.lGkcPg.rst b/Misc/NEWS.d/next/Library/2017-09-13-18-05-56.bpo-31234.lGkcPg.rst
new file mode 100644
index 00000000000..e522e8e9527
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2017-09-13-18-05-56.bpo-31234.lGkcPg.rst
@@ -0,0 +1,2 @@
+socket.create_connection() now fixes manually a reference cycle: clear the
+variable storing the last exception on success.



More information about the Python-checkins mailing list