From 459762d964c244b7bb443603ea4fd25f03f0bc9a Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 23 May 2022 08:01:00 +0300 Subject: [PATCH] Fixed - "Can't add slave" exceptions after fail over in cluster mode. #4278 --- .../java/org/redisson/cluster/ClusterConnectionManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index cc7018e4e..494f84835 100644 --- a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -520,8 +520,10 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { } } - Set addedSlaves = new HashSet<>(newPart.getSlaveAddresses()); - addedSlaves.removeAll(currentPart.getSlaveAddresses()); + Set addedSlaves = newPart.getSlaveAddresses().stream() + .filter(uri -> !currentPart.getSlaveAddresses().contains(uri) + && !newPart.getFailedSlaveAddresses().contains(uri)) + .collect(Collectors.toSet()); for (RedisURI uri : addedSlaves) { ClientConnectionsEntry slaveEntry = entry.getEntry(uri); if (slaveEntry != null) {