From cb86630beda45dd382b9c6bfc7126e2a145fe1c3 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Sun, 8 Mar 2020 19:56:58 +0100 Subject: [PATCH] p2p/discover: don't track failures in v5 lookupWorker They're already tracked by lookup --- p2p/discover/lookup.go | 2 +- p2p/discover/v5_udp.go | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/p2p/discover/lookup.go b/p2p/discover/lookup.go index ab825fb05d..40b271e6d9 100644 --- a/p2p/discover/lookup.go +++ b/p2p/discover/lookup.go @@ -150,7 +150,7 @@ func (it *lookup) query(n *node, reply chan<- []*node) { } else if len(r) == 0 { fails++ it.tab.db.UpdateFindFails(n.ID(), n.IP(), fails) - it.tab.log.Trace("Findnode failed", "id", n.ID(), "failcount", fails, "err", err) + it.tab.log.Trace("Findnode failed", "id", n.ID(), "failcount", fails, "results", len(r), "err", err) if fails >= maxFindnodeFailures { it.tab.log.Trace("Too many findnode failures, dropping", "id", n.ID(), "failcount", fails) it.tab.delete(n) diff --git a/p2p/discover/v5_udp.go b/p2p/discover/v5_udp.go index 302865de07..d035d2a59e 100644 --- a/p2p/discover/v5_udp.go +++ b/p2p/discover/v5_udp.go @@ -256,12 +256,13 @@ func (t *UDPv5) lookupWorker(destNode *node, target enode.ID) ([]*node, error) { var ( dists = lookupDistances(target, destNode.ID()) nodes = nodesByDistance{target: target} + err error ) for i := 0; i < lookupRequestLimit && len(nodes.entries) < findnodeResultLimit; i++ { - fails := t.db.FindFailsV5(destNode.ID()) - r, err := t.findnode(unwrapNode(destNode), dists[i]) - if len(r) == 0 { - t.log.Trace("FINDNODE/v5 call found no useful nodes", "id", destNode.ID(), "d", dists[i], "failcount", fails, "err", err) + var r []*enode.Node + r, err = t.findnode(unwrapNode(destNode), dists[i]) + if err == errClosed { + return nil, err } for _, n := range r { if n.ID() != t.Self().ID() { @@ -269,7 +270,7 @@ func (t *UDPv5) lookupWorker(destNode *node, target enode.ID) ([]*node, error) { } } } - return nodes.entries, nil + return nodes.entries, err } // lookupDistances computes the distance parameter for FINDNODE calls to dest.