Description
Summary
Usually when i am debugging a workflow, i change one of the node, and when rerunning the workflow all child nodes of that node will be rerun but parent and independent nodes will just use the cached previous results. However this does not happen in one of my workflow and i was wondering what were the criteria for this behavior to happen?
Actual behavior
1st run: Node 1 (results cached) --> Node 2 (results cached) --> Node 3 (results cached)
2nd run with Node 2 modified: Node 1 (use previous cached results --> Node 2 (creating new results to be cached) --> Node 3 (keep previous cached results although input changed)
Expected behavior
1st run: Node 1 (results cached) --> Node 2 (results cached) --> Node 3 (results cached)
2nd run with Node 2 modified: Node 1 (use previous cached results --> Node 2 (creating new results to be cached) --> Node 3 (creating new results to be cached)
How to replicate the behavior
I can put more details here but first it'd be great to know if the behavior expectation is correct, and what are the requirements for it to work. I believe the issue may come from the problematic node not rerun fsl.CopyGeom
which creates a local copy of the file on which to copy the header information. It'd be great to have more information on how the "Node rerun" decision is made.
Script/Workflow details
rerunissue.connect([
(Node1, CopyGeom,
[("out_file", "in_file")]),
(Node2, CopyGeom,
[("out_file", "dest_file")]),
(CopyGeom, Node4,
[("out_file", "in_file")]),
])
When Node2
is modified and the workflow is rerun, CopyGeom
is not rerun (and subsequent nodes such as Node4
are not rerun either).
Platform details:
{'commit_hash': '%h',
'commit_source': 'archive substitution',
'networkx_version': '2.3',
'nibabel_version': '2.4.1',
'nipype_version': '1.2.0',
'numpy_version': '1.16.4',
'pkg_path': '/home/<my_username>/pyutils/miniconda3/envs/mri36/lib/python3.6/site-packages/nipype',
'scipy_version': '1.2.1',
'sys_executable': '/home/<my_username>/pyutils/miniconda3/envs/mri36/bin/python',
'sys_platform': 'linux',
'sys_version': '3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) \n'
'[GCC 7.3.0]',
'traits_version': '5.1.1'}
Execution environment
Choose one
- My python environment outside container