From 9c7976e1dd9b2ec3acb36b845775c82c97e0c641 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 6 Jun 2019 00:23:04 -0700 Subject: [PATCH] logging: make the swarm less noisy Avoid logging about closed listeners, etc., when shutting down. --- swarm.go | 5 +++++ swarm_listen.go | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/swarm.go b/swarm.go index cc7eb97..5366bdc 100644 --- a/swarm.go +++ b/swarm.go @@ -116,6 +116,11 @@ func NewSwarm(ctx context.Context, local peer.ID, peers peerstore.Peerstore, bwc } func (s *Swarm) teardown() error { + // Wait for the context to be canceled. + // This allows other parts of the swarm to detect that we're shutting + // down. + <-s.ctx.Done() + // Prevents new connections and/or listeners from being added to the swarm. s.listeners.Lock() diff --git a/swarm_listen.go b/swarm_listen.go index 570acfe..f1cfa9e 100644 --- a/swarm_listen.go +++ b/swarm_listen.go @@ -79,6 +79,7 @@ func (s *Swarm) AddListenAddr(a ma.Multiaddr) error { c, err := list.Accept() if err != nil { if s.ctx.Err() == nil { + // only log if the swarm is still running. log.Errorf("swarm listener accept error: %s", err) } return @@ -88,9 +89,13 @@ func (s *Swarm) AddListenAddr(a ma.Multiaddr) error { go func() { defer s.refs.Done() _, err := s.addConn(c, network.DirInbound) - if err != nil { - // Probably just means that the swarm has been closed. - log.Warningf("add conn failed: ", err) + switch err { + case nil: + case ErrSwarmClosed: + // ignore. + return + default: + log.Warningf("add conn %s failed: ", err) return } }() -- GitLab