From 33702983b8b0a55d29189babb631ea108ee8404f Mon Sep 17 00:00:00 2001 From: Utkarsh Gupta Date: Sun, 19 Jun 2022 07:16:02 +0530 Subject: async_cluster: fix simultaneous initialize (#2231) - close startup_nodes too during client.close(), in case they are different --- redis/asyncio/cluster.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'redis/asyncio/cluster.py') diff --git a/redis/asyncio/cluster.py b/redis/asyncio/cluster.py index 89789b7..a7bea30 100644 --- a/redis/asyncio/cluster.py +++ b/redis/asyncio/cluster.py @@ -323,14 +323,13 @@ class RedisCluster(AbstractRedis, AbstractRedisCluster, AsyncRedisClusterCommand if self._initialize: async with self._lock: if self._initialize: - self._initialize = False try: await self.nodes_manager.initialize() await self.commands_parser.initialize( self.nodes_manager.default_node ) + self._initialize = False except BaseException: - self._initialize = True await self.nodes_manager.close() await self.nodes_manager.close("startup_nodes") raise @@ -343,6 +342,7 @@ class RedisCluster(AbstractRedis, AbstractRedisCluster, AsyncRedisClusterCommand if not self._initialize: self._initialize = True await self.nodes_manager.close() + await self.nodes_manager.close("startup_nodes") async def __aenter__(self) -> "RedisCluster": return await self.initialize() -- cgit v1.2.1