Closed LourensVeen closed 7 years ago
Fixed by 55b458281ea007d91e6b1235d12f22bbd2973796, at least in cwltiny. It still expects all the outputs to be there, and will return permanentFail if some are missing. It's possible to declare outputs optional in CWL (using a type definition), so that a run is a success even if those outputs are missing. That's not supported, but that's a different issue.
If a workflow ends in a non-Success state, no output is produced at all, even if partial output is available.
That's annoying for the mdstudio case, where much of the output is actually log files that tell you what went wrong. If they're not returned, they're stuck in some temp dir on the compute node, where you can't easily get to them.
@mr-c says that it's okay for a CWL runner to return a partial output object on stdout, as long as the return value is non-zero. And we need to print 'permanentFail' on the stderr still, because we can't always get the return value of a job. So: