fix: properly handle exception and successful results

Signed-off-by: Nicola Dardanis <nicdard@gmail.com>
pull/4853/head
Nicola Dardanis 2 years ago committed by Nicola Dardanis
parent 48920c232b
commit e2ac5e9327

@ -218,7 +218,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager {
}
RedisConnection connection = connectionFuture.toCompletableFuture().join();
InetSocketAddress addr = connection.getRedisClient().getAddr();
final Role role = Role.valueOf(r.get(ROLE_KEY));
Role role = Role.valueOf(r.get(ROLE_KEY));
if (Role.master.equals(role)) {
InetSocketAddress master = currentMaster.get();
if (master.equals(addr)) {
@ -226,9 +226,11 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager {
} else if (currentMaster.compareAndSet(master, addr)) {
CompletableFuture<RedisClient> changeFuture = changeMaster(singleSlotRange.getStartSlot(), uri);
return changeFuture.handle((ignored, e) -> {
if (e != null) {
log.error("Unable to change master to {}", addr, e);
currentMaster.compareAndSet(addr, master);
return role;
}
return role;
});
}
} else if (!config.checkSkipSlavesInit()) {

Loading…
Cancel
Save