Hello everrbody,
I am using the cylc’s version 8.0.1
, I get some issue with one of my workflow that is permanently stalling. Here is what my workflow should look like if it is successfull
[scheduling]
initial cycle point = now
#max active cycle points = 1
runahead limit = P1
[[special tasks]]
clock-trigger = A
[[dependencies]]
T-00 = """
A? & B? => C? => D? => E?
(A:fail? & B?) | (A:submit-fail? & B?) => A_error
(A? & B:fail?) | (A? & B:submit-fail?) => B_error
(A:fail? & B:fail? ) | (A:sumbmit-fail? & B:submit-fail?) => AB_error
C:fail? | C:submit-fail? => C_error
D:fail? | D:submit-fail? => D_error
E:fail? | E:submit-fail? => E_error
"""
*_error represents dummy task that will print message in case of failure of the tasks
So this i what my workflow should look like if it is successfull
I have some issue concerning the A & B task if one of these taks failed i get some workflow stalled. So i wanted to know if there is some tools except the graph that can help me to overcome this issue ? Also i wanted to know if the way i do to redirect failed task to the dummy task is good or if there is more efficient way to do it ?
Hello there,
I am using the cylc’s version 8.0.1
Cylc 8.0.1 is almost one year old now, we would strongly recommend upgrading to 8.1.4 which has many improvements, including a new graph view:
https://cylc.github.io/cylc-doc/stable/html/reference/changes.html#graph-view
I have some issue concerning the A & B task if one of these taks failed i get some workflow stalled
A “stall” means that the path through the graph is blocked because one or more tasks have dependencies which cannot be satisfied.
The easiest way to find out which task(s) have caused the stall is to look at the graph view in the GUI which was added in Cylc 8.1.0.
Here’s an example of the Cylc 8 graph view, in this case the tasks bar, bool and pub will not run because fool failed:
So i wanted to know if there is some tools except the graph
If you don’t want to use the graph view, then you can use the cylc show
command. This command will tell you which prerequisites and outputs are completed.
Here’s an example of cylc show
, in this case the task bar
will not run because the task fool
did not succeed:
The cylc show
functionality will be added to cylc gui
in a future release.
You may be able to use event handlers for this purpose - you can read about them in the docs here: Task Configuration — Cylc 8.2.2 documentation
The reason this workflow stalls if A or B fails is because C can only run after both A & B succeed. If this does not need to be the case you could do something like
(A:finish & B:finish) => C
Otherwise a stall allows you intervene e.g. manually triggering whichever of A or B that failed.