Skip to content

Commit f02c9e7

Browse files
committed
panic recover
1 parent 4b0760a commit f02c9e7

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

main.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ var (
2020
)
2121

2222
func main() {
23+
defer func() {
24+
if r := recover(); r != nil {
25+
log.Printf("main Recovered from panic: %v\n", r) // 记录日志
26+
}
27+
}()
2328
myApp := cli.NewApp()
2429
myApp.Name = "server-go"
2530
myApp.Usage = "-c [config File Path]"

manager/SessionsManager.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ func (sess *SessionsManager) DelSession(id string) {
114114

115115
// connHdl
116116
func (sess *SessionsManager) connHdl(conn net.Conn) {
117+
defer func() {
118+
if r := recover(); r != nil {
119+
log.Printf("connHdl Recovered from panic: %v\n", r) // 记录日志
120+
}
121+
}()
117122
var yamuxSession *yamux.Session
118123
var token *models.TokenClaims
119124
var err error
@@ -206,6 +211,12 @@ func (sess *SessionsManager) connHdl(conn net.Conn) {
206211
conn.Close()
207212
return
208213
}
214+
//panic: send on closed channel
215+
//goroutine 194458 [running]:
216+
//github.com/OpenIoTHub/server-go/manager.(*SessionsManager).connHdl(0xc0003961c0, {0xe0e930, 0xc0001071b8})
217+
// /Users/iotserv/git/server-go/manager/SessionsManager.go:209 +0x4cc
218+
//created by github.com/OpenIoTHub/server-go/manager.SessionsManager.listenerHdl in goroutine 12
219+
// /Users/iotserv/git/server-go/manager/listen.go:131 +0x1e5
209220
session.WorkConn <- conn
210221
}
211222

0 commit comments

Comments
 (0)