fix(reflectors): retain responsive peers on partial reselection
Build binaries / Build (arm-musleabi) (push) Successful in 1m50s
Build binaries / Build (aarch64-musl) (push) Successful in 1m51s
Build binaries / Build (arm-musleabihf) (push) Successful in 1m53s
Build binaries / Build (armv7-musleabi) (push) Successful in 1m54s
Build binaries / Build (armv7-musleabihf) (push) Successful in 1m55s
Build binaries / Build (i686-musl) (push) Successful in 1m54s
Build binaries / Build (mips-musl) (push) Successful in 2m9s
Build binaries / Build (mips64-muslabi64) (push) Successful in 2m8s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 2m6s
Build binaries / Build (mipsel-musl) (push) Successful in 2m5s
Build binaries / Build (x86_64-musl) (push) Successful in 1m52s
Build binaries / Build (riscv64gc-musl) (push) Successful in 1m52s
Build binaries / Build (arm-musleabi) (push) Successful in 1m50s
Build binaries / Build (aarch64-musl) (push) Successful in 1m51s
Build binaries / Build (arm-musleabihf) (push) Successful in 1m53s
Build binaries / Build (armv7-musleabi) (push) Successful in 1m54s
Build binaries / Build (armv7-musleabihf) (push) Successful in 1m55s
Build binaries / Build (i686-musl) (push) Successful in 1m54s
Build binaries / Build (mips-musl) (push) Successful in 2m9s
Build binaries / Build (mips64-muslabi64) (push) Successful in 2m8s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 2m6s
Build binaries / Build (mipsel-musl) (push) Successful in 2m5s
Build binaries / Build (x86_64-musl) (push) Successful in 1m52s
Build binaries / Build (riscv64gc-musl) (push) Successful in 1m52s
This commit is contained in:
1 parent
51f0ae2e23
commit
c6fc3a7fc9
1 file changed
+10
-6
@@ -252,17 +252,21 @@ impl ReflectorSelector {
|
|||||||
candidates.swap(i, j);
|
candidates.swap(i, j);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (candidates.len() as u8) < num_reflectors {
|
if candidates.is_empty() {
|
||||||
info!(
|
info!("No usable reflectors, retaining current set");
|
||||||
"Only {} usable reflectors, retaining current set of {}",
|
|
||||||
candidates.len(),
|
|
||||||
num_reflectors
|
|
||||||
);
|
|
||||||
self.reflector_tx.send(current_peers.clone())?;
|
self.reflector_tx.send(current_peers.clone())?;
|
||||||
*reflectors_peers = current_peers;
|
*reflectors_peers = current_peers;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (candidates.len() as u8) < num_reflectors {
|
||||||
|
info!(
|
||||||
|
"Only {} usable reflectors, selecting available candidates",
|
||||||
|
candidates.len()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
let num_reflectors = num_reflectors.min(candidates.len() as u8);
|
||||||
|
|
||||||
let mut new_peers = Vec::new();
|
let mut new_peers = Vec::new();
|
||||||
for i in 0..num_reflectors {
|
for i in 0..num_reflectors {
|
||||||
let peer = candidates[i as usize].0;
|
let peer = candidates[i as usize].0;
|
||||||
|
|||||||
Reference in new issue
Block a user