From 8622b5b06c62d36cc472df3c68c6623a71f342bb Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 16 Jun 2026 11:17:15 +0100 Subject: [PATCH] chore: coderabbit suggestions --- service/internal/executor/executor.go | 6 ++---- service/internal/executor/group_concurrency.go | 14 +++++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/service/internal/executor/executor.go b/service/internal/executor/executor.go index 72fbedd..10f36ab 100644 --- a/service/internal/executor/executor.go +++ b/service/internal/executor/executor.go @@ -587,8 +587,6 @@ func (e *Executor) initializeExecRequest(req *ExecutionRequest) { ActionIcon: "💩", Username: req.AuthenticatedUser.Username, } - - req.logEntry.ExecutionTrackingID = req.TrackingID } func bindingIDForTrace(req *ExecutionRequest) string { @@ -665,8 +663,8 @@ func getConcurrentCount(req *ExecutionRequest) int { req.executor.logmutex.RLock() logs := req.executor.LogsByBindingId[req.Binding.ID] - for _, log := range logs { - if !log.ExecutionFinished && !log.Queued { + for _, logEntry := range logs { + if !logEntry.ExecutionFinished && !logEntry.Queued { concurrentCount += 1 } } diff --git a/service/internal/executor/group_concurrency.go b/service/internal/executor/group_concurrency.go index dc44927..c6ad54b 100644 --- a/service/internal/executor/group_concurrency.go +++ b/service/internal/executor/group_concurrency.go @@ -144,6 +144,8 @@ func firstFullGroupNameLocked(e *Executor, req *ExecutionRequest) string { } func (e *Executor) queueRequest(req *ExecutionRequest, wg *sync.WaitGroup) { + e.groupQueueMu.Lock() + var groupName string req.mutateLogEntry(func(entry *InternalLogEntry) { @@ -153,14 +155,15 @@ func (e *Executor) queueRequest(req *ExecutionRequest, wg *sync.WaitGroup) { entry.Output = fmt.Sprintf("Queued waiting for action group %q", groupName) }) + e.groupQueue = append(e.groupQueue, &queuedExecution{req: req, wg: wg}) + e.groupQueueMu.Unlock() + + e.drainGroupQueue() + log.WithFields(log.Fields{ "actionTitle": req.logEntry.ActionTitle, "groupName": groupName, }).Infof("Action queued due to action group concurrency limit") - - e.groupQueueMu.Lock() - e.groupQueue = append(e.groupQueue, &queuedExecution{req: req, wg: wg}) - e.groupQueueMu.Unlock() } func (e *Executor) drainGroupQueue() { @@ -178,13 +181,14 @@ func (e *Executor) drainGroupQueue() { } e.groupQueue = e.groupQueue[1:] - e.groupQueueMu.Unlock() next.req.mutateLogEntry(func(entry *InternalLogEntry) { entry.Queued = false entry.QueuedForGroup = "" }) + e.groupQueueMu.Unlock() + go e.runDequeuedExecution(next) }