Task removed from graph - should it still be visible and runnable?

I was just modifying a workflow I had running, and removed (consolidated) some tasks. I reloaded the workflow and noticed the tasks were still there and runnable (and the new task was also there). An example is below.

I know the below graph can be simplified more for this example, I’m just leaving it as its a graph I had used previously with only minor modifications.

[scheduling]
    initial cycle point = 20240806
    [[graph]]
        P1D = """
            @wall_clock => a => b & c => d
            a[-P1D] => a
            d[-P2D] => b
        """


[runtime]
    [[a,b,c]]
        script = return #"return 1"
        [[[environment]]]
            FOO = bar
    [[d]]
        script = return 1

I ran the above and let it stall. I then changed the d to an e in the graph and runtime, so d no longer exists.

In the UI, this is what I see after a reload.

image

I then trigger one of the d tasks and it runs like it has in the past. Scheduler log output below

2024-08-07T01:53:53Z INFO - Command "force_trigger_tasks" actioned. ID=c28370f4-50a1-49a8-856f-1ed8bc4c672a
2024-08-07T01:53:53Z INFO - [20240807T0000Z/d:waiting] => waiting(queued)
2024-08-07T01:53:53Z INFO - [20240807T0000Z/d:waiting(queued)] => waiting
2024-08-07T01:53:53Z INFO - [20240807T0000Z/d:waiting] => preparing
2024-08-07T01:53:55Z INFO - [20240807T0000Z/d/02:preparing] submitted to localhost:background[929941]
2024-08-07T01:53:55Z INFO - [20240807T0000Z/d/02:preparing] => submitted
2024-08-07T01:53:55Z WARNING - Unhandled jobs-submit output: 2024-08-07T01:53:54Z|20240807T0000Z/d/02|0|929941
2024-08-07T01:53:55Z WARNING - 'd'
2024-08-07T01:53:56Z INFO - [20240807T0000Z/d/02:submitted] => running
2024-08-07T01:53:58Z INFO - [20240807T0000Z/d/02:running] => failed
2024-08-07T01:53:58Z WARNING - [20240807T0000Z/d/02:failed] did not complete the required outputs:
    ⨯ ⦙  succeeded

My questions are

  1. When a task no longer exists in the graph but has previously run, is it meant to remain in the view?
  2. Assuming yes, should it still be runnable even though it no longer has a graph or runtime section?
    • I note that you can also do Edit Runtime on these tasks

Such a task no longer exists in the graph, but it in this case a particular instance of the task failed and was retained in the active task pool (n=0 window) for not completing its required outputs. When it ran, it did exist in the graph, and it was expected to complete its required outputs.

A task with final status and incomplete outputs requires user intervention to complete its outputs (allowing it to be forgotten from the active task pool) or be forcibly removed from the pool.

If you observe your workflow in the web UI graph view you’ll see that after reload the incomplete failed task has no graph connected to it, so if you retrigger it manually it will not spawn downstream activity based on the old graph.

So I think that’s all working as expected.

(BTW check that you reinstall the config before reloading it, after altering the graph - that just caught me out!)

Yes, as per my explanation above.

1 Like