Skip to content

Strange results file checking behavior that breaks workflows at nested mapnodes in nipype 1.2.3 #3076

Closed
@dPys

Description

@dPys

Summary

Nested MapNodes hang in some workflows when trying to load the node's result file. It appears this is because results.outputs.get() fails since there is a Bunch representation of outputs, rather than a dictionary representation.

Manifests as follows:

At the logging debug level during execution:

Outputs object of loaded result /private/tmp/work/20191012-164048_df69a011-5615-4010-aa22-d4a0c94c5696_wf_single_subject_fmri_0025427/wf_single_sub_0025427_fmri_20191012-164047/meta_wf_0025427/fmri_connectometry_0025427/thresh_func_node/result_thresh_func_node.pklz is a Bunch.

and then if I attempt to load the file manually:

In [32]: res.outputs.get()                                                                                                                                                     
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-32-347df97b2ed0> in <module>
----> 1 res.outputs.get()

/usr/local/anaconda3/lib/python3.7/site-packages/nipype-2.0.0.dev0+g7b9c63932-py3.7.egg/nipype/interfaces/base/support.py in get(self, *args)

TypeError: get expected at least 1 arguments, got 0

See attached example results file:
result_thresh_func_node.pklz.zip

Interestingly, it seems that load_resultfile from nipyp/epipeline/engine/utils.py fails, but only for the result file of the primary node (i.e. and not its subnodes if they get parameterized)

Appears to only occurs as of version nipype 1.2.3. Looks like this might also be related to #3009 #3014 #3075 and/or #1798 of fmriprep.

Any ideas @oesteban ?

@dPys

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions