From d5c3428ff9c15e96e4808de60f0154d800cbb62c Mon Sep 17 00:00:00 2001 From: Robin <167366979+allrob23@users.noreply.github.com> Date: Tue, 18 Mar 2025 21:29:50 -0300 Subject: [PATCH 1/4] fix: add socket shutdown before close for proper termination --- redis/connection.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/redis/connection.py b/redis/connection.py index f754a5165a..1b420eedff 100644 --- a/redis/connection.py +++ b/redis/connection.py @@ -764,6 +764,10 @@ def _connect(self): except OSError as _: err = _ if sock is not None: + try: + sock.shutdown(socket.SHUT_RDWR) # ensure a clean close + except: + pass sock.close() if err is not None: @@ -1179,6 +1183,11 @@ def _connect(self): sock.connect(self.path) except OSError: # Prevent ResourceWarnings for unclosed sockets. + try: + sock.shutdown(socket.SHUT_RDWR) # ensure a clean close + except: + pass + sock.close() raise sock.settimeout(self.socket_timeout) From 9af879531f217b595acd2f332b6bb16650e820d7 Mon Sep 17 00:00:00 2001 From: Robin <167366979+allrob23@users.noreply.github.com> Date: Tue, 25 Mar 2025 15:53:11 -0300 Subject: [PATCH 2/4] fix: avoid bare except --- redis/connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis/connection.py b/redis/connection.py index 1b420eedff..e6d7c4c25e 100644 --- a/redis/connection.py +++ b/redis/connection.py @@ -766,7 +766,7 @@ def _connect(self): if sock is not None: try: sock.shutdown(socket.SHUT_RDWR) # ensure a clean close - except: + except OSError: pass sock.close() From 4d9289ed42e34a8e98138b9c436e115f3f70b005 Mon Sep 17 00:00:00 2001 From: Robin <167366979+allrob23@users.noreply.github.com> Date: Tue, 25 Mar 2025 15:54:28 -0300 Subject: [PATCH 3/4] fix: avoid bare except --- redis/connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis/connection.py b/redis/connection.py index e6d7c4c25e..4a9329e691 100644 --- a/redis/connection.py +++ b/redis/connection.py @@ -1185,7 +1185,7 @@ def _connect(self): # Prevent ResourceWarnings for unclosed sockets. try: sock.shutdown(socket.SHUT_RDWR) # ensure a clean close - except: + except OSError: pass sock.close() From 1d673dc7357c1029bc6bb37b5cff15d1e686b8b8 Mon Sep 17 00:00:00 2001 From: Robin <167366979+allrob23@users.noreply.github.com> Date: Tue, 25 Mar 2025 15:56:48 -0300 Subject: [PATCH 4/4] fix: remove whitespace --- redis/connection.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/redis/connection.py b/redis/connection.py index 4a9329e691..8300716ede 100644 --- a/redis/connection.py +++ b/redis/connection.py @@ -767,7 +767,7 @@ def _connect(self): try: sock.shutdown(socket.SHUT_RDWR) # ensure a clean close except OSError: - pass + pass sock.close() if err is not None: @@ -1187,7 +1187,6 @@ def _connect(self): sock.shutdown(socket.SHUT_RDWR) # ensure a clean close except OSError: pass - sock.close() raise sock.settimeout(self.socket_timeout)