From afa3c72c40eee45dfbf3cbc40505b78cb2c3c6b2 Mon Sep 17 00:00:00 2001 From: ferhat elmas Date: Mon, 18 Dec 2017 04:03:48 +0100 Subject: [PATCH] p2p/discover: fix leaked goroutine in data expiration --- p2p/discover/database.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/p2p/discover/database.go b/p2p/discover/database.go index 7206a63c63..b136609f24 100644 --- a/p2p/discover/database.go +++ b/p2p/discover/database.go @@ -226,14 +226,14 @@ func (db *nodeDB) ensureExpirer() { // expirer should be started in a go routine, and is responsible for looping ad // infinitum and dropping stale data from the database. func (db *nodeDB) expirer() { - tick := time.Tick(nodeDBCleanupCycle) + tick := time.NewTicker(nodeDBCleanupCycle) + defer tick.Stop() for { select { - case <-tick: + case <-tick.C: if err := db.expireNodes(); err != nil { log.Error("Failed to expire nodedb items", "err", err) } - case <-db.quit: return }