Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Consider all children of TaskGroups in DAGs #3740

Merged
merged 2 commits into from
Aug 19, 2020

Conversation

simster7
Copy link
Member

@simster7 simster7 commented Aug 11, 2020

Fixes #3739
Fixes #3780

Bug came to be because:

  1. Task A is a TaskGroup (i.e. uses withItems, withParams, etc.)
  2. Task A's tasks are empty (i.e. withParams: "")
  3. Task B depends on Task A
  4. Task B is a target task (i.e. it is a leaf task in the DAG)

Since Task A had no expanded tasks, its children were actually normal tasks (Task B) instead of the expected expanded tasks. Since we previously used a "shortcut" by skipping over the expanded tasks (i.e. queuing only the children of children of TaskGroup nodes), we never considered Task B.

Since we can't tell when a TaskGroup's children are expanded tasks or normal tasks, we remove our use of the "shortcut" and always queue all children of TaskGroups. This is not a significant performance hindrance since the unique queue introduced in #3418 is able to handle this case well.

@simster7
Copy link
Member Author

Alternate solution to this in #3746

@simster7 simster7 merged commit d235c7d into argoproj:master Aug 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DAG with generated jobs from loop's failure won't make the workflow fail DAG hanging
2 participants