From 13d5001c60ba7dbb6dd194cf5ebe703604583572 Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Tue, 21 Apr 2026 08:48:14 +0000 Subject: [PATCH] cmd/devp2p/v5test: remove unsolicited NODES sleep --- cmd/devp2p/internal/v5test/discv5tests.go | 30 +++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/cmd/devp2p/internal/v5test/discv5tests.go b/cmd/devp2p/internal/v5test/discv5tests.go index 4397c82d02..e5760603ad 100644 --- a/cmd/devp2p/internal/v5test/discv5tests.go +++ b/cmd/devp2p/internal/v5test/discv5tests.go @@ -345,34 +345,38 @@ The remote node should neither contact the injected node nor return it from late t.Log("sending unsolicited NODES response with injected node") conn.write(l1, unsolicited, nil) - const contactWindow = 500 * time.Millisecond - buf := make([]byte, 1280) - if err := fakeL.SetReadDeadline(time.Now().Add(contactWindow)); err != nil { - t.Fatal(err) - } - if n, from, err := fakeL.ReadFrom(buf); err == nil { - t.Fatalf("remote contacted injected node after unsolicited NODES: %d bytes from %v", n, from) - } else if !netutil.IsTimeout(err) { - t.Fatalf("waiting for unexpected contact failed: %v", err) + checkNoContact := func(phase string) { + buf := make([]byte, 1280) + if err := fakeL.SetReadDeadline(time.Now()); err != nil { + t.Fatal(err) + } + for { + n, from, err := fakeL.ReadFrom(buf) + if err == nil { + t.Fatalf("%s: remote contacted injected node: %d bytes from %v", phase, n, from) + } + if netutil.IsTimeout(err) { + return + } + t.Fatalf("%s: checking for unexpected contact failed: %v", phase, err) + } } + checkNoContact("after unsolicited NODES") dist := uint(enode.LogDist(fakeConn.localNode.ID(), s.Dest.ID())) const maxAttempts = 3 - const retryInterval = 200 * time.Millisecond for attempt := 1; attempt <= maxAttempts; attempt++ { results, err := conn.findnode(l1, []uint{dist}) if err != nil { t.Fatal(err) } + checkNoContact("during FINDNODE probes") for _, n := range results { if n.ID() == fakeConn.localNode.ID() { t.Fatalf("attempt %d: FINDNODE result contains node from unsolicited NODES response", attempt) } } t.Logf("attempt %d: injected node not returned in FINDNODE results", attempt) - if attempt < maxAttempts { - time.Sleep(retryInterval) - } } }