Skip to content

Commit 0e799c2

Browse files
authored
Prevent panic during wrappedConn close at hammertime (#11219)
* Prevent panic during wrappedConn close at hammertime Signed-off-by: Andrew Thornton <[email protected]> * Update modules/graceful/server.go * Fix extraneous debug in goldmark.go Signed-off-by: Andrew Thornton <[email protected]>
1 parent 9f959ac commit 0e799c2

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

modules/graceful/server.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,17 @@ type wrappedConn struct {
250250

251251
func (w wrappedConn) Close() error {
252252
if atomic.CompareAndSwapInt32(w.closed, 0, 1) {
253+
defer func() {
254+
if err := recover(); err != nil {
255+
select {
256+
case <-GetManager().IsHammer():
257+
// Likely deadlocked request released at hammertime
258+
log.Warn("Panic during connection close! %v. Likely there has been a deadlocked request which has been released by forced shutdown.", err)
259+
default:
260+
log.Error("Panic during connection close! %v", err)
261+
}
262+
}
263+
}()
253264
w.server.wg.Done()
254265
}
255266
return w.Conn.Close()

modules/markup/markdown/goldmark.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,6 @@ func (r *HTMLRenderer) renderIcon(w util.BufWriter, source []byte, node ast.Node
328328
func (r *HTMLRenderer) renderTaskCheckBoxListItem(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
329329
n := node.(*TaskCheckBoxListItem)
330330
if entering {
331-
n.Dump(source, 0)
332331
if n.Attributes() != nil {
333332
_, _ = w.WriteString("<li")
334333
html.RenderAttributes(w, n, html.ListItemAttributeFilter)

0 commit comments

Comments
 (0)