From 2c1611d316fbfb59f3d9d1341be2245910e28393 Mon Sep 17 00:00:00 2001
From: Nikolay <nik@victoriametrics.com>
Date: Wed, 9 Jun 2021 12:08:58 +0300
Subject: [PATCH] disables panic for net/httpAbortHandler (#1355)

---
 lib/httpserver/httpserver.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/httpserver/httpserver.go b/lib/httpserver/httpserver.go
index 792eaef2eb..57eb587e22 100644
--- a/lib/httpserver/httpserver.go
+++ b/lib/httpserver/httpserver.go
@@ -212,7 +212,9 @@ func handlerWrapper(s *server, w http.ResponseWriter, r *http.Request, rh Reques
 	// The following recover() code works around this by explicitly stopping the process after logging the panic.
 	// See https://github.com/golang/go/issues/16542#issuecomment-246549902 for details.
 	defer func() {
-		if err := recover(); err != nil {
+		// need to check for abortHandler
+		// https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1353
+		if err := recover(); err != nil && err != http.ErrAbortHandler {
 			buf := make([]byte, 1<<20)
 			n := runtime.Stack(buf, false)
 			fmt.Fprintf(os.Stderr, "panic: %v\n\n%s", err, buf[:n])