From c910b7c28ee5837a4bd2d4b29a4af21093cc25b2 Mon Sep 17 00:00:00 2001 From: ezioruan Date: Sun, 28 Jan 2018 14:45:27 +0800 Subject: [PATCH] swarm: fix swarm index out of range (#14843) * swarm: skip empty nodes when in findBest --- swarm/network/kademlia/kaddb.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/swarm/network/kademlia/kaddb.go b/swarm/network/kademlia/kaddb.go index b37ced5ba0..e8bbc67d20 100644 --- a/swarm/network/kademlia/kaddb.go +++ b/swarm/network/kademlia/kaddb.go @@ -204,6 +204,12 @@ func (self *KadDb) findBest(maxBinSize int, binSize func(int) int) (node *NodeRe count++ node = dbrow[cursor] + // skip empty nodes + if node == nil { + log.Debug(fmt.Sprintf("kaddb record (PO%03d:%d/%d) not found", po, cursor, len(dbrow))) + continue ROW + } + // skip already connected nodes if node.node != nil { log.Debug(fmt.Sprintf("kaddb record %v (PO%03d:%d/%d) already connected", node.Addr, po, cursor, len(dbrow)))