From 0e799c26ba322e8e1dd1e5acd1367341c0452987 Mon Sep 17 00:00:00 2001 From: zeripath Date: Mon, 27 Apr 2020 01:01:06 +0100 Subject: [PATCH] Prevent panic during wrappedConn close at hammertime (#11219) * Prevent panic during wrappedConn close at hammertime Signed-off-by: Andrew Thornton * Update modules/graceful/server.go * Fix extraneous debug in goldmark.go Signed-off-by: Andrew Thornton --- modules/graceful/server.go | 11 +++++++++++ modules/markup/markdown/goldmark.go | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/graceful/server.go b/modules/graceful/server.go index 09be933999..4d0d8677f0 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() diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go index 8974504a79..6a40a86836 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("