From ce08d7855f44e4a15cf6951c508952d5799d4545 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 25 Oct 2026 22:46:51 +0100 Subject: avoid stalled source A source given up for not answering our sync messages could become the source again straight away. Whoever asks first after the reset takes the role, and that's often the same peer, which would then stall for another delivery limit. Now, a stalled source isn't chosen again for one more delivery_limit. If it's the only candidate, catching up waits that long and then tries it again. Before, a retry with that peer couldn't have helped any sooner anyway: a source is only given up after a whole delivery limit without a sync message, and that clock restarts when it is chosen again. --- src/node.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src/node.rs') diff --git a/src/node.rs b/src/node.rs index 8a49c56..57d961c 100644 --- a/src/node.rs +++ b/src/node.rs @@ -113,6 +113,7 @@ impl Node { stale: Default::default(), catch_up_source: Default::default(), catch_up_preference: Default::default(), + catch_up_avoided: Default::default(), }; for actor in config.earlier_actors { state.remake.add_own_actor(actor); -- cgit v1.3.1