diff --git a/CHANGES b/CHANGES index 95843ec7ff..010612f756 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ * Fix cursor returned by SCAN for RedisCluster & change default target to PRIMARIES * Fix scan_iter for RedisCluster * Remove verbose logging when initializing ClusterPubSub, ClusterPipeline or RedisCluster + * Fix broken connection writer lock-up for asyncio (#2065) * 4.1.3 (Feb 8, 2022) * Fix flushdb and flushall (#1926) diff --git a/redis/asyncio/connection.py b/redis/asyncio/connection.py index 0c5398568e..f0e6d3da4f 100644 --- a/redis/asyncio/connection.py +++ b/redis/asyncio/connection.py @@ -827,8 +827,9 @@ async def disconnect(self): await self._writer.wait_closed() # type: ignore[union-attr] except OSError: pass - self._reader = None - self._writer = None + finally: + self._reader = None + self._writer = None except asyncio.TimeoutError: raise TimeoutError( f"Timed out closing connection after {self.socket_connect_timeout}"