From 639ac7a131bb242ef39519697d724c8cb0d4c5c6 Mon Sep 17 00:00:00 2001 From: oliverpool Date: Tue, 19 Mar 2024 16:24:28 +0100 Subject: [PATCH] workergroup: gracefully exit on close(popItemErr) --- modules/queue/workergroup.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/queue/workergroup.go b/modules/queue/workergroup.go index 8c9dd274f0..ea4c0020c5 100644 --- a/modules/queue/workergroup.go +++ b/modules/queue/workergroup.go @@ -334,7 +334,10 @@ func (q *WorkerPoolQueue[T]) doRun() { // since we are already in a "flush" operation, so the dispatching function shouldn't read the flush chan. q.doDispatchBatchToWorker(wg, skipFlushChan) q.doFlush(wg, flush) - case err := <-wg.popItemErr: + case err, errOk := <-wg.popItemErr: + if !errOk { + return + } if !q.isCtxRunCanceled() { log.Error("Failed to pop item from queue %q (doRun): %v", q.GetName(), err) }