From 35085cc92dceefc2beb14feff0f24c69fc678c42 Mon Sep 17 00:00:00 2001 From: mmukhi Date: Mon, 4 Jun 2018 15:25:35 -0700 Subject: [PATCH] Reduce error logs in transport. (#2117) --- transport/controlbuf.go | 12 +++++++++++- transport/http2_client.go | 5 +++-- transport/http2_server.go | 5 +++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/transport/controlbuf.go b/transport/controlbuf.go index 4a84ac37..b2485178 100644 --- a/transport/controlbuf.go +++ b/transport/controlbuf.go @@ -365,7 +365,17 @@ func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimato const minBatchSize = 1000 // run should be run in a separate goroutine. -func (l *loopyWriter) run() error { +func (l *loopyWriter) run() (err error) { + defer func() { + if err == ErrConnClosing { + // Don't log ErrConnClosing as error since it happens + // 1. When the connection is closed by some other known issue. + // 2. User closed the connection. + // 3. A graceful close of connection. + infof("transport: loopyWriter.run returning. %v", err) + err = nil + } + }() for { it, err := l.cbuf.get(true) if err != nil { diff --git a/transport/http2_client.go b/transport/http2_client.go index edf4d6cb..92a33118 100644 --- a/transport/http2_client.go +++ b/transport/http2_client.go @@ -296,10 +296,11 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr TargetInfo, opts Conne go func() { t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst) err := t.loopy.run() - errorf("transport: loopyWriter.run returning. Err: %v", err) + if err != nil { + errorf("transport: loopyWriter.run returning. Err: %v", err) + } // If it's a connection error, let reader goroutine handle it // since there might be data in the buffers. - if _, ok := err.(net.Error); !ok { t.conn.Close() } diff --git a/transport/http2_server.go b/transport/http2_server.go index 8d1fe06b..3643e823 100644 --- a/transport/http2_server.go +++ b/transport/http2_server.go @@ -273,8 +273,9 @@ func newHTTP2Server(conn net.Conn, config *ServerConfig) (_ ServerTransport, err go func() { t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst) t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler - err := t.loopy.run() - errorf("transport: loopyWriter.run returning. Err: %v", err) + if err := t.loopy.run(); err != nil { + errorf("transport: loopyWriter.run returning. Err: %v", err) + } t.conn.Close() close(t.writerDone) }()