Australian-Imaging-Service / pipelines

Scripts to generate analysis pipelines that can be run in XNAT's container service
Other
2 stars 3 forks source link

[BUG] Workflow checking for task outputs that have not been generated (FastSurfer task raises error at completion) #282

Closed arkiev closed 7 months ago

arkiev commented 8 months ago

Description

Completion of FastSurfer task is followed by a ValueError (Cannot retrieve value for out_file from SGMfix_task as the node errored). SGMfix_task takes place after FastSurfer_task (and is not a predecessor) although it looks like core.py (line 1444 # checking if the tasks has predecessors that raises error) is looking for outputs that have not been generated.

Expected behaviour

FastSurfer to finish running and feed straight into subsequent tasks.

Screenshots

Exception has occurred: ValueError
Tasks ['FastSurfer_task'] raised an error
  File "/Users/arkievdsouza/git/pydra/pydra/engine/core.py", line 1440, in _collect_outputs
    val_out = val.get_value(self)
              ^^^^^^^^^^^^^^^^^^^
  File "/Users/arkievdsouza/git/pydra/pydra/engine/specs.py", line 1031, in get_value
    value = get_nested_results(result, depth=split_depth)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/arkievdsouza/git/pydra/pydra/engine/specs.py", line 1021, in get_nested_results
    raise ValueError(
ValueError: Cannot retrieve value for out_file from SGMfix_task as the node errored

During handling of the above exception, another exception occurred:

  File "/Users/arkievdsouza/git/pydra/pydra/engine/core.py", line 1446, in _collect_outputs
    raise ValueError(
  File "/Users/arkievdsouza/git/pydra/pydra/engine/core.py", line 1311, in _run
    result.output = self._collect_outputs()
                    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/arkievdsouza/git/pydra/pydra/engine/submitter.py", line 84, in submit_from_call
    await runnable._run(self, rerun=rerun)
  File "/Users/arkievdsouza/git/pydra/pydra/engine/submitter.py", line 55, in __call__
    self.loop.run_until_complete(
  File "/Users/arkievdsouza/git/pydra/pydra/engine/core.py", line 461, in __call__
    res = sub(self, environment=environment)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/arkievdsouza/git/t1-pipeline/T1_ProcessingPipeline_v1.py", line 347, in <module>
    result = wf(
             ^^^
ValueError: Tasks ['FastSurfer_task'] raised an error