From 4a4e7e995eea8b5d4f1976369642f4d86f7e975d Mon Sep 17 00:00:00 2001 From: knull-cn Date: Fri, 31 Dec 2021 18:27:51 +0800 Subject: [PATCH] server: filter the EOF error for normal closed at handshake (#31081) close pingcap/tidb#31063 --- server/server.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/server/server.go b/server/server.go index a81b4c3b74d6c..4ae869736736c 100644 --- a/server/server.go +++ b/server/server.go @@ -33,6 +33,7 @@ import ( "context" "crypto/tls" "fmt" + "io" "math/rand" "net" "net/http" @@ -510,11 +511,17 @@ func (s *Server) onConn(conn *clientConn) { }) terror.Log(err) } - // Some keep alive services will send request to TiDB and disconnect immediately. - // So we only record metrics. - metrics.HandShakeErrorCounter.Inc() - terror.Log(errors.Trace(err)) - terror.Log(errors.Trace(conn.Close())) + if errors.Cause(err) == io.EOF { + // `EOF` means the connection is closed normally, we do not treat it as a noticeable error and log it in 'DEBUG' level. + logutil.BgLogger().With(zap.Uint64("conn", conn.connectionID)). + Debug("EOF", zap.String("remote addr", conn.bufReadConn.RemoteAddr().String())) + } else { + metrics.HandShakeErrorCounter.Inc() + logutil.BgLogger().With(zap.Uint64("conn", conn.connectionID)). + Warn("Server.onConn handshake", zap.Error(err), + zap.String("remote addr", conn.bufReadConn.RemoteAddr().String())) + } + terror.Log(conn.Close()) return }