Skip to content

Commit 8ef81cc

Browse files
committed
Do not unban replicas if a primary is available
1 parent a68071d commit 8ef81cc

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/pool.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -943,11 +943,17 @@ impl ConnectionPool {
943943

944944
debug!("Available targets: {}", replicas_available);
945945

946+
let has_primary = self.addresses[address.shard]
947+
.iter()
948+
.filter(|addr| addr.role == Role::Primary)
949+
.count()
950+
== 1;
951+
946952
let read_guard = self.banlist.read();
947953
let all_replicas_banned = read_guard[address.shard].len() == replicas_available;
948954
drop(read_guard);
949955

950-
if all_replicas_banned {
956+
if all_replicas_banned && !has_primary {
951957
let mut write_guard = self.banlist.write();
952958
warn!("Unbanning all replicas.");
953959
write_guard[address.shard].clear();

0 commit comments

Comments
 (0)