diff --git a/redis/asyncio/connection.py b/redis/asyncio/connection.py index 15b9219aaa..66dbd09b61 100644 --- a/redis/asyncio/connection.py +++ b/redis/asyncio/connection.py @@ -1157,7 +1157,7 @@ async def ensure_connection(self, connection: AbstractConnection): try: if await connection.can_read_destructive(): raise ConnectionError("Connection has data") from None - except (ConnectionError, OSError): + except (ConnectionError, TimeoutError, OSError): await connection.disconnect() await connection.connect() if await connection.can_read_destructive(): diff --git a/redis/connection.py b/redis/connection.py index b6dee40d75..f754a5165a 100644 --- a/redis/connection.py +++ b/redis/connection.py @@ -1494,7 +1494,7 @@ def get_connection(self, command_name=None, *keys, **options) -> "Connection": try: if connection.can_read() and self.cache is None: raise ConnectionError("Connection has data") - except (ConnectionError, OSError): + except (ConnectionError, TimeoutError, OSError): connection.disconnect() connection.connect() if connection.can_read(): @@ -1741,7 +1741,7 @@ def get_connection(self, command_name=None, *keys, **options): try: if connection.can_read(): raise ConnectionError("Connection has data") - except (ConnectionError, OSError): + except (ConnectionError, TimeoutError, OSError): connection.disconnect() connection.connect() if connection.can_read():