diff --git a/crates/net/discv4/src/lib.rs b/crates/net/discv4/src/lib.rs index 7bb9cb8b99..1f9f474a8a 100644 --- a/crates/net/discv4/src/lib.rs +++ b/crates/net/discv4/src/lib.rs @@ -1256,6 +1256,8 @@ impl Discv4Service { true }); + debug!(target: "discv4", num=%failed_neighbours.len(), "processing failed neighbours"); + for node_id in failed_neighbours { let key = kad_key(node_id); let failures = match self.kbuckets.entry(&key) { @@ -1369,11 +1371,6 @@ impl Discv4Service { self.lookup_with(target, None); } - // evict expired nodes - if self.evict_expired_requests_interval.poll_tick(cx).is_ready() { - self.evict_expired_requests(Instant::now()) - } - // re-ping some peers if self.ping_interval.poll_tick(cx).is_ready() { self.re_ping_oldest(); @@ -1486,6 +1483,11 @@ impl Discv4Service { // try resending buffered pings self.ping_buffered(); + // evict expired nodes + if self.evict_expired_requests_interval.poll_tick(cx).is_ready() { + self.evict_expired_requests(Instant::now()) + } + if self.queued_events.is_empty() { return Poll::Pending }