Skip to content

When node changed and workflow rerun, child nodes of changed node failed to rerun #2951

Open
@mick-d

Description

@mick-d

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

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