My workflow has stalled because of a failed task. I know the task won’t run successfully because the input data is corrupt. All I want to do is reset the status to get things moving again, it’s not a problem downstream.
However, I issue the set-outputs command and nothing happens even though it says Done. I am able to retrigger the task, so my clumsy way forward seems to be to tamper with the task command so that it completes, then reset for following cycles.
There’s a subtle difference between
cylc reset (Cylc 7) and
cylc set-outputs (Cylc 8).
- Reset, actually changed the task’s status.
- Set-outputs, satisfies the prerequisites of downstream tasks but does not change the task’s status
So, set-outputs to allow any downstream tasks to run if desired, then if you don’t want to keep the failed task kicking around, do
cylc remove <workflow>//<cycle>/<task> and it will no longer be able to stall the workflow.
Note, this disparity has been a problem point with Cylc 8 migration, so we have found a way to re-implement “reset” like functionality within the new scheduling algorithm, this will arrive in Cylc 8.3.0.
Thanks for the clarification. I certainly find it very useful to be able to do this in one command, so I’ll look forward to 8.3.0!
For the moment, think of
cylc set-outputs as telling the scheduler to carry on as if those outputs had been completed. i.e., it acts on downstream tasks that depend on those outputs, rather than the target task itself.