From 95263914fcc6631aedc7294624ae39c2adf3cb5f Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Mon, 13 May 2019 11:25:54 +0200 Subject: [PATCH] p2p/discover: fix a race where table loop would self-lookup before returning from constructor --- p2p/discover/table.go | 1 - p2p/discover/table_util_test.go | 1 + p2p/discover/v4_udp.go | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/p2p/discover/table.go b/p2p/discover/table.go index 8afe77bf1..61c62f187 100644 --- a/p2p/discover/table.go +++ b/p2p/discover/table.go @@ -119,7 +119,6 @@ func newTable(t transport, db *enode.DB, bootnodes []*enode.Node, log log.Logger tab.seedRand() tab.loadSeedNodes() - go tab.loop() return tab, nil } diff --git a/p2p/discover/table_util_test.go b/p2p/discover/table_util_test.go index 811466cf7..71cb1895b 100644 --- a/p2p/discover/table_util_test.go +++ b/p2p/discover/table_util_test.go @@ -42,6 +42,7 @@ func init() { func newTestTable(t transport) (*Table, *enode.DB) { db, _ := enode.OpenDB("") tab, _ := newTable(t, db, nil, log.Root()) + go tab.loop() return tab, db } diff --git a/p2p/discover/v4_udp.go b/p2p/discover/v4_udp.go index cdd42c38a..3c68beac1 100644 --- a/p2p/discover/v4_udp.go +++ b/p2p/discover/v4_udp.go @@ -253,6 +253,7 @@ func ListenV4(c UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv4, error) { return nil, err } t.tab = tab + go tab.loop() t.wg.Add(2) go t.loop()