From ff7ac829c481143cad01eb545ebabb89fc4e65fc Mon Sep 17 00:00:00 2001 From: Chrysostomos Nanakos Date: Mon, 27 Oct 2025 17:25:27 +0200 Subject: [PATCH] fix(blockexchange): handle evicted peer in download retry loop Part of https://github.com/codex-storage/nim-codex/issues/974 Signed-off-by: Chrysostomos Nanakos --- codex/blockexchange/engine/engine.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/codex/blockexchange/engine/engine.nim b/codex/blockexchange/engine/engine.nim index bd3afc98..8cf9cb19 100644 --- a/codex/blockexchange/engine/engine.nim +++ b/codex/blockexchange/engine/engine.nim @@ -375,7 +375,10 @@ proc downloadInternal( let peerId = self.pendingBlocks.getRequestPeer(address).get() self.peers.get(peerId) - assert not scheduledPeer.isNil + if scheduledPeer.isNil: + trace "Scheduled peer no longer available, clearing stale request", address + self.pendingBlocks.clearRequest(address) + continue # Parks until either the block is received, or the peer times out. let activityTimer = scheduledPeer.activityTimer()