From 465e270342ef2b4f446a786336eec53f4958b635 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Sun, 25 Jul 2021 14:32:09 +0300 Subject: [PATCH] Fix queued task is not dequeued on tasks.stop --- apiserver/bll/task/task_operations.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apiserver/bll/task/task_operations.py b/apiserver/bll/task/task_operations.py index a592b45..0edd018 100644 --- a/apiserver/bll/task/task_operations.py +++ b/apiserver/bll/task/task_operations.py @@ -367,7 +367,21 @@ def stop_task( and (datetime.utcnow() - t.last_update).total_seconds() < update_timeout ) - if TaskSystemTags.development in task.system_tags or not is_run_by_worker(task): + is_queued = task.status == TaskStatus.queued + set_stopped = ( + is_queued + or TaskSystemTags.development in task.system_tags + or not is_run_by_worker(task) + ) + + if set_stopped: + if is_queued: + try: + TaskBLL.dequeue(task, company_id=company_id, silent_fail=True) + except APIError: + # dequeue may fail if the task was not enqueued + pass + new_status = TaskStatus.stopped status_message = f"Stopped by {user_name}" else: