From 46e59d4d19df888f77b8b2adae302e0a998fa790 Mon Sep 17 00:00:00 2001 From: georgezgeorgez Date: Fri, 5 Aug 2022 01:22:13 +0000 Subject: [PATCH] Allow p2p discovery refresh to handle empty peers --- p2p/discover/table.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/p2p/discover/table.go b/p2p/discover/table.go index ae3971a..3ccad21 100644 --- a/p2p/discover/table.go +++ b/p2p/discover/table.go @@ -308,9 +308,11 @@ func (tab *Table) refresh(forceSeed bool) { nodes := append(tab.nursery, seeds...) - for i := uint32(len(nodes)) - 1; i > 0; i-- { - j := randUint(i) - nodes[i], nodes[j] = nodes[j], nodes[i] + if len(nodes) > 0 { + for i := uint32(len(nodes)) - 1; i > 0; i-- { + j := randUint(i) + nodes[i], nodes[j] = nodes[j], nodes[i] + } } // Bond with all the seed nodes (will pingpong only if failed recently)