From e84eedde7f173720571ff3aa921a722dbb1797f4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 07:17:44 +0000 Subject: [PATCH] fix: Fix task type starvation in WorkerCommand::processNextTask by shuffling providers Co-authored-by: marcelklehr <986878+marcelklehr@users.noreply.github.com> --- core/Command/TaskProcessing/WorkerCommand.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/Command/TaskProcessing/WorkerCommand.php b/core/Command/TaskProcessing/WorkerCommand.php index 569045ef3af..7e370c1ecb6 100644 --- a/core/Command/TaskProcessing/WorkerCommand.php +++ b/core/Command/TaskProcessing/WorkerCommand.php @@ -110,6 +110,10 @@ class WorkerCommand extends Base { */ private function processNextTask(OutputInterface $output, array $taskTypes = []): bool { $providers = $this->taskProcessingManager->getProviders(); + // Shuffle providers to avoid starvation: if providers are always iterated + // in the same order, a provider with a constant stream of tasks would + // prevent all subsequent providers from ever being processed. + shuffle($providers); foreach ($providers as $provider) { if (!$provider instanceof ISynchronousProvider) {