From cb1f8a69a97a3b673e47d57d623f42b6be4a99e4 Mon Sep 17 00:00:00 2001 From: nach0522 Date: Mon, 2 Feb 2026 19:35:21 +0530 Subject: [PATCH 1/2] Skip scheduling action for duplicate index --- mistral/engine/tasks.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mistral/engine/tasks.py b/mistral/engine/tasks.py index d879cc7ef..49ea594ac 100644 --- a/mistral/engine/tasks.py +++ b/mistral/engine/tasks.py @@ -1078,6 +1078,8 @@ def _get_input_dicts(self, with_items_values, prev_index=-1): ctx = {} index = prev_index + concurrency + if self.is_index_invalid(index): + return for k, v in with_items_values.items(): ctx.update({k: v[index]}) @@ -1098,6 +1100,19 @@ def _get_input_dicts(self, with_items_values, prev_index=-1): result.append((i, self._get_action_input(ctx))) return result + + def is_index_invalid(self, index): + with db_api.named_lock('with-items-%s' % self.task_ex.id): + + exs = db_api.get_accepted_executions_indexes( + id=self.task_ex.id, + workflow=self.task_ex.spec.get('workflow'), + accepted=True + ) + + finished = [ex[0] for ex in exs] + + return index in finished def _get_with_items_context(self): return self.task_ex.runtime_context.get( From 926ce661c343b977bb788802b92f93d5fae2b87f Mon Sep 17 00:00:00 2001 From: nach0522 Date: Thu, 5 Feb 2026 17:07:21 +0530 Subject: [PATCH 2/2] Skip scheduling action for duplicate index --- mistral/engine/tasks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mistral/engine/tasks.py b/mistral/engine/tasks.py index 49ea594ac..1edb7c281 100644 --- a/mistral/engine/tasks.py +++ b/mistral/engine/tasks.py @@ -1104,13 +1104,13 @@ def _get_input_dicts(self, with_items_values, prev_index=-1): def is_index_invalid(self, index): with db_api.named_lock('with-items-%s' % self.task_ex.id): - exs = db_api.get_accepted_executions_indexes( + indices = db_api.get_accepted_executions_indexes( id=self.task_ex.id, workflow=self.task_ex.spec.get('workflow'), accepted=True ) - finished = [ex[0] for ex in exs] + finished = [idx[0] for idx in indices] return index in finished