diff --git a/Lib/ssl.py b/Lib/ssl.py index bd9ba346dae8cc..4ccccdeba2a55b 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -1048,7 +1048,11 @@ def _create(cls, sock, server_side=False, do_handshake_on_connect=True, self.close() except OSError: pass - raise notconn_pre_handshake_data_error + try: + raise notconn_pre_handshake_data_error + finally: + # Explicitly break the reference cycle. + notconn_pre_handshake_data_error = None else: connected = True