From 6226a80e78979e88bf017a68aca96d74281274e1 Mon Sep 17 00:00:00 2001
From: Asim <asim@chuhnk.me>
Date: Mon, 21 Dec 2015 17:18:04 +0000
Subject: [PATCH] Print stack when panic

---
 server/rpc_server.go | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/server/rpc_server.go b/server/rpc_server.go
index 6436c673..f5f93f1d 100644
--- a/server/rpc_server.go
+++ b/server/rpc_server.go
@@ -2,6 +2,7 @@ package server
 
 import (
 	"fmt"
+	"runtime/debug"
 	"strconv"
 	"strings"
 	"sync"
@@ -43,6 +44,13 @@ func newRpcServer(opts ...Option) Server {
 }
 
 func (s *rpcServer) accept(sock transport.Socket) {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Error(r, string(debug.Stack()))
+			sock.Close()
+		}
+	}()
+
 	var msg transport.Message
 	if err := sock.Recv(&msg); err != nil {
 		return