Closed LourensVeen closed 8 years ago
I think we need to know what these things really mean first. It seems that there are four things here: the state of the workflow execution, the result of the workflow execution, the reason for failure, and whether it makes sense to retry the job unchanged:
State
Result
Reason
Run again
CWL specifies that permanentFailure is returned for e.g. invalid expressions in the workflow document. How to interpret the return value of a command line tool can be specified by the creator of the workflow. So I think if we're using CWL for the workflows, then we need at least Success, PermanentFailure and TemporaryFailure as possibilities, otherwise we'd be incompatible with some workflows. If the job ends due to some external circumstance, then we can have additional error messages. And we'd like to combine things into a single list.
So that leads to
Which can then be simplified to
So I propose replacing Failure with PermanentFailure, and using the above semantics to determine when to return what.
Oh by the way, Cancelled with double-l seems to be the common spelling :-).
Slightly better meanings:
How's this?
Fixed with fc531a74a04f7a8943079b9ffcb1454c9b01ac1e
According to the CWL spec, workflows can end in either success, temporaryFailure, or permanentFailure. We now have Waiting, Running, Success, Canceled, TemporaryFailure, Failed, and SystemError. Those should be reconciled somehow.