From 3ef52775c4756b7cbdc28b807eb4600127a9a873 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Fri, 20 Nov 2020 15:14:25 +0100 Subject: [PATCH] p2p: avoid spinning loop on out-of-handles (#21878) * p2p: avoid busy-loop on temporary errors * p2p: address review concerns --- p2p/server.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/p2p/server.go b/p2p/server.go index dd52297f8..275cb5ea5 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -854,13 +854,18 @@ func (srv *Server) listenLoop() { <-slots var ( - fd net.Conn - err error + fd net.Conn + err error + lastLog time.Time ) for { fd, err = srv.listener.Accept() if netutil.IsTemporaryError(err) { - srv.log.Debug("Temporary read error", "err", err) + if time.Since(lastLog) > 1*time.Second { + srv.log.Debug("Temporary read error", "err", err) + lastLog = time.Now() + } + time.Sleep(time.Millisecond * 200) continue } else if err != nil { srv.log.Debug("Read error", "err", err)