Skip to content

Commit 201b345

Browse files
tm-adaamzadaamz
authored andcommitted
asyncio redis cluster: fixed reconnection when whole cluster goes down and then back online
1 parent 6240ea1 commit 201b345

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

redis/asyncio/cluster.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,7 @@ class NodesManager:
11171117
"require_full_coverage",
11181118
"slots_cache",
11191119
"startup_nodes",
1120+
"_initial_startup_nodes",
11201121
"address_remap",
11211122
)
11221123

@@ -1128,6 +1129,7 @@ def __init__(
11281129
address_remap: Optional[Callable[[str, int], Tuple[str, int]]] = None,
11291130
) -> None:
11301131
self.startup_nodes = {node.name: node for node in startup_nodes}
1132+
self._initial_startup_nodes = copy.deepcopy(startup_nodes)
11311133
self.require_full_coverage = require_full_coverage
11321134
self.connection_kwargs = connection_kwargs
11331135
self.address_remap = address_remap
@@ -1250,7 +1252,7 @@ async def initialize(self) -> None:
12501252
startup_nodes_reachable = False
12511253
fully_covered = False
12521254
exception = None
1253-
for startup_node in self.startup_nodes.values():
1255+
for startup_node in self.startup_nodes.values() or self._initial_startup_nodes.values():
12541256
try:
12551257
# Make sure cluster mode is enabled on this node
12561258
if not (await startup_node.execute_command("INFO")).get(

0 commit comments

Comments
 (0)