Skip to content

Draft: Add test of execution of workflow with self-triggering task#28

Open
poautran wants to merge 1 commit into
mainfrom
self-trigger-test
Open

Draft: Add test of execution of workflow with self-triggering task#28
poautran wants to merge 1 commit into
mainfrom
self-trigger-test

Conversation

@poautran

Copy link
Copy Markdown
Member

@poautran

Copy link
Copy Markdown
Member Author

In GitLab by @loichuder on Sep 10, 2024, 17:25 GMT+2:

added 2 commits

  • 43b48ad5 - Add test of execution of workflow with self-triggering task
  • cef244e4 - Adapt tests to new ewokscore version

Compare with previous version (link unavailable after force-push)

@poautran

Copy link
Copy Markdown
Member Author

In GitLab by @loichuder on Sep 10, 2024, 17:40 GMT+2:

marked this merge request as ready

@poautran

Copy link
Copy Markdown
Member Author

In GitLab by @loichuder on Sep 12, 2024, 14:05 GMT+2:

added 3 commits

  • cef244e4...05a43232 - 2 commits from branch main
  • f31f5b4 - Add test of execution of workflow with self-triggering task

Compare with previous version (link unavailable after force-push)

@poautran

Copy link
Copy Markdown
Member Author

In GitLab by @loichuder on Sep 12, 2024, 14:20 GMT+2:

marked this merge request as draft

@poautran

Copy link
Copy Markdown
Member Author

In GitLab by @loichuder on Sep 12, 2024, 14:21 GMT+2:

Drafting this until #16 is fixed.

@poautran

Copy link
Copy Markdown
Member Author

In GitLab by @loichuder on Feb 2, 2026, 15:00 GMT+1:

added 63 commits

Compare with previous version (link unavailable after force-push)

@woutdenolf

woutdenolf commented Apr 3, 2026

Copy link
Copy Markdown
Member

The new workflow25 in the unit tests looks like this at the moment

image

The decider node has three downstream links: good, bad and self.

The link to self causes the input cache of decider to have disable=True cached. When the decider receives this, it will stop triggering downstream nodes.

However it could be that we have more than one downstream trigger to good or bad. Suppose good + self is triggered but in the mean time another metric or timeout arrives and gets scheduled before disable=True is cached.

@woutdenolf

woutdenolf commented Apr 3, 2026

Copy link
Copy Markdown
Member

In fact the solution to the race condition is to not use the link-to-self but rely on the cached inputs to ensure we trigger downstream only once

image

Since all inputs of decider are cached the task always remember all previous calls and can ensure we trigger downstream only once (good or bad).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants