diff --git a/server/socketserver.go b/server/socketserver.go index b395eb6..eb89906 100644 --- a/server/socketserver.go +++ b/server/socketserver.go @@ -84,6 +84,12 @@ func (s *socketServer) writeResponse(conn net.Conn, reply []byte) { } func (s *socketServer) handleConnection(conn net.Conn) { + defer func() { + if r := recover(); r != nil { + Log.Error("panic in handle connection", zap.String("error", fmt.Sprint(r))) + } + }() + Log.Debug("socketServer.handleConnection") status.M.NumSocketsGauge.WithLabelValues(conn.RemoteAddr().String()).Inc() diff --git a/server/webserver.go b/server/webserver.go index 2bbf008..f58546f 100644 --- a/server/webserver.go +++ b/server/webserver.go @@ -1,6 +1,7 @@ package server import ( + "fmt" "io/ioutil" "net/http" "strings" @@ -28,6 +29,12 @@ func NewWebServer(path string, r *repo.Repo) http.Handler { } func (s *webServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { + defer func() { + if r := recover(); r != nil { + Log.Error("panic in handle connection", zap.String("error", fmt.Sprint(r))) + } + }() + if r.Body == nil { http.Error(w, "no body", http.StatusBadRequest) return