From dd21b816de22c4d86a42d8de891f15861fbd2108 Mon Sep 17 00:00:00 2001 From: Jeff Ortel Date: Mon, 10 Jun 2024 15:07:10 -0700 Subject: [PATCH] Prevent action panic from killing the task manager. Signed-off-by: Jeff Ortel --- task/manager.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/task/manager.go b/task/manager.go index f93a31da2..b6f8bdcfa 100644 --- a/task/manager.go +++ b/task/manager.go @@ -282,10 +282,18 @@ func (m *Manager) pause() { // action executes an asynchronous action. func (m *Manager) action(action func() error) (err error) { - d := time.Hour + d := time.Minute ch := make(chan error) m.queue <- func() { - defer close(ch) + defer func() { + p := recover() + if p != nil { + if err, cast := p.(error); cast { + ch <- err + } + } + close(ch) + }() select { case ch <- action(): default: