From fe4b87be49d61d90f9b8d943cfd57e2a56db1fa4 Mon Sep 17 00:00:00 2001 From: Ian Kenney Date: Fri, 23 Aug 2024 12:56:11 -0700 Subject: [PATCH] resolve restart of tasks with no tracebacks --- alchemiscale/storage/statestore.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/alchemiscale/storage/statestore.py b/alchemiscale/storage/statestore.py index e08ec1c8..a2a3b4a1 100644 --- a/alchemiscale/storage/statestore.py +++ b/alchemiscale/storage/statestore.py @@ -2944,7 +2944,9 @@ def get_task_restart_patterns( q, taskhub_scoped_keys=list(map(str, taskhubs)) ).records - data = {taskhub: set() for taskhub in taskhubs} + data: dict[ScopedKey, set[tuple[str, int]]] = { + taskhub: set() for taskhub in taskhubs + } for record in records: pattern = record["trp"]["pattern"] @@ -3000,11 +3002,15 @@ def resolve_task_restarts(self, task_scoped_keys: Iterable[ScopedKey], *, tx=Non applies_relationship = record["app"] task = record["task"] taskhub = record["taskhub"] - # TODO: what happens if there is no traceback? i.e. older errored tasks traceback = record["traceback"] task_taskhub_tuple = (task["_scoped_key"], taskhub["_scoped_key"]) + # TODO: remove in v1.0.0 + # tasks that errored, prior to the indtroduction of task restart policies will have no tracebacks in the database + if traceback is None: + cancel_map[task_taskhub_tuple] = True + # we have already determined that the task is to be canceled # is only ever truthy when we say a task needs to be canceled if cancel_map[task_taskhub_tuple]: