From 94a8cd7a4ccd81658e5b7c92630939c7691e89d0 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Sun, 26 Apr 2020 15:32:00 +0100 Subject: [PATCH 1/3] Prevent panic during wrappedConn close at hammertime Signed-off-by: Andrew Thornton --- modules/graceful/server.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/graceful/server.go b/modules/graceful/server.go index 09be9339997bf..afcc61f2703d4 100644 --- a/modules/graceful/server.go +++ b/modules/graceful/server.go @@ -250,6 +250,17 @@ type wrappedConn struct { func (w wrappedConn) Close() error { if atomic.CompareAndSwapInt32(w.closed, 0, 1) { + defer func() { + if err := recover(); err != nil { + select { + case GetManager().IsHammer(): + // Likely deadlocked request released at hammertime + log.Warn("Panic during connection close! %v. Likely there has been a deadlocked request which has been released by forced shutdown.", err) + default: + log.Error("Panic during connection close! %v", err) + } + } + }() w.server.wg.Done() } return w.Conn.Close() From 83280b175c1fc06bedb9782a66eb9fb925aaa4e1 Mon Sep 17 00:00:00 2001 From: zeripath Date: Sun, 26 Apr 2020 22:02:31 +0100 Subject: [PATCH 2/3] Update modules/graceful/server.go --- modules/graceful/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/graceful/server.go b/modules/graceful/server.go index afcc61f2703d4..4d0d8677f0e6c 100644 --- a/modules/graceful/server.go +++ b/modules/graceful/server.go @@ -253,7 +253,7 @@ func (w wrappedConn) Close() error { defer func() { if err := recover(); err != nil { select { - case GetManager().IsHammer(): + case <-GetManager().IsHammer(): // Likely deadlocked request released at hammertime log.Warn("Panic during connection close! %v. Likely there has been a deadlocked request which has been released by forced shutdown.", err) default: From 50a4b25ca233ae26378108633f448a701df07f44 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Sun, 26 Apr 2020 22:24:33 +0100 Subject: [PATCH 3/3] Fix extraneous debug in goldmark.go Signed-off-by: Andrew Thornton --- modules/markup/markdown/goldmark.go | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go index 8974504a790e9..6a40a868363ad 100644 --- a/modules/markup/markdown/goldmark.go +++ b/modules/markup/markdown/goldmark.go @@ -328,7 +328,6 @@ func (r *HTMLRenderer) renderIcon(w util.BufWriter, source []byte, node ast.Node func (r *HTMLRenderer) renderTaskCheckBoxListItem(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) { n := node.(*TaskCheckBoxListItem) if entering { - n.Dump(source, 0) if n.Attributes() != nil { _, _ = w.WriteString("