From fc583f2c3c9b2523e9e090e509d6b841c4676881 Mon Sep 17 00:00:00 2001 From: Brendan McMillion Date: Mon, 19 Sep 2016 14:03:17 -0700 Subject: [PATCH] Catch panics, like net/http.Server. --- server/server.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/server.go b/server/server.go index 9ca8b2a9..0bc644b7 100644 --- a/server/server.go +++ b/server/server.go @@ -199,6 +199,12 @@ func (s *Server) handle(conn *gokeyless.Conn) { func (s *Server) handleReq(conn *gokeyless.Conn, ch chan *gokeyless.Header) { runtime.LockOSThread() + defer func() { + if err := recover(); err != nil { + log.Errorf("panic while handling request: %v", err) + go s.handleReq(conn, ch) + } + }() var connError error for connError == nil {