From 31e6e6a2801a19515daa7adda09b0d24d420f18e Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 25 Oct 2026 20:40:00 +0100 Subject: require catch-up source to make progress --- src/swarm/peer.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/swarm/peer.rs') diff --git a/src/swarm/peer.rs b/src/swarm/peer.rs index 8c1e7eb..238194c 100644 --- a/src/swarm/peer.rs +++ b/src/swarm/peer.rs @@ -468,6 +468,7 @@ pub(crate) async fn run_peer_worker(state: AppState) { if let Some(changes) = unanswered { debug!(peer = %peer, changes, "No answer to our sync message; sending again"); + crate::swarm::source::reply_timed_out(&state, peer); let _ = state .sync_events .send(SyncEvent::PeerNeedsSync(peer.clone())); @@ -500,6 +501,7 @@ pub(crate) async fn run_peer_worker(state: AppState) { crate::swarm::members::ensure_registered(&state).await; crate::swarm::stability::tick(&state).await; crate::swarm::stats::measure_saved_size(&state); + crate::swarm::source::warn_if_stalled(&state); crate::swarm::state_file::update(&state, false).await; { let known = state.peer_states.read().await; @@ -847,6 +849,7 @@ pub(crate) async fn handle_message( debug!(peer = %peer, epoch = %envelope.epoch, "Dropping sync message from another epoch"); return Ok(()); } + crate::swarm::source::synced_from(state, &peer); handle_sync(state, &peer, envelope).await?; } transport::ParsedMessage::Ping(remote) => { -- cgit v1.3.1