From 2c7dbde06a86e88753e1b11a1d4a49517de7deb1 Mon Sep 17 00:00:00 2001 From: bergquist Date: Fri, 21 Oct 2016 14:46:55 +0200 Subject: [PATCH] feat(alerting): recover from panic --- pkg/services/alerting/engine.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/services/alerting/engine.go b/pkg/services/alerting/engine.go index dd6e88294a8..b99b7506614 100644 --- a/pkg/services/alerting/engine.go +++ b/pkg/services/alerting/engine.go @@ -106,6 +106,13 @@ func (e *Engine) processJob(grafanaCtx context.Context, job *Job) error { done := make(chan struct{}) go func() { + defer func() { + if err := recover(); err != nil { + e.log.Error("Alert Panic", "error", err, "stack", log.Stack(1)) + close(done) + } + }() + e.evalHandler.Eval(evalContext) e.resultHandler.Handle(evalContext) close(done)