From 9429725d2d6468ba1cfa50e4a9a81cdc67fab990 Mon Sep 17 00:00:00 2001 From: cui Date: Tue, 26 May 2026 20:18:47 +0800 Subject: [PATCH] p2p/discover: waitForNodes hangs on RespCount=0 from peer (#35043) The first NODES response sets total = min(int(response.RespCount), totalNodesResponseLimit), With RespCount=0, total=0 but receive become 1; receive == count is never satisfied. --- p2p/discover/v5_udp.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/discover/v5_udp.go b/p2p/discover/v5_udp.go index c13032e1af..5f14784511 100644 --- a/p2p/discover/v5_udp.go +++ b/p2p/discover/v5_udp.go @@ -464,7 +464,7 @@ func (t *UDPv5) waitForNodes(c *callV5, distances []uint) ([]*enode.Node, error) if total == -1 { total = min(int(response.RespCount), totalNodesResponseLimit) } - if received++; received == total { + if received++; received >= total { return nodes, nil } case err := <-c.err: