From 4a04740dafb1da047300dfbb9da596fee16af948 Mon Sep 17 00:00:00 2001 From: zeripath Date: Fri, 15 May 2020 01:06:00 +0100 Subject: Handle panics that percolate up to the graceful module (#11291) * Handle panics in graceful goroutines Adds a some deferred functions to handle panics in graceful goroutines Signed-off-by: Andrew Thornton * Handle panic in webhook.Deliver Signed-off-by: Andrew Thornton * Handle panic in mirror.syncMirror Signed-off-by: Andrew Thornton Co-authored-by: Lauris BH Co-authored-by: techknowlogick --- modules/webhook/deliver.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'modules/webhook') diff --git a/modules/webhook/deliver.go b/modules/webhook/deliver.go index 89a95c52f2..7b0c651733 100644 --- a/modules/webhook/deliver.go +++ b/modules/webhook/deliver.go @@ -26,6 +26,14 @@ import ( // Deliver deliver hook task func Deliver(t *models.HookTask) error { + defer func() { + err := recover() + if err == nil { + return + } + // There was a panic whilst delivering a hook... + log.Error("PANIC whilst trying to deliver webhook[%d] for repo[%d] to %s Panic: %v\nStacktrace: %s", t.ID, t.RepoID, t.URL, err, log.Stack(2)) + }() t.IsDelivered = true var req *http.Request -- cgit v1.2.3