-
Notifications
You must be signed in to change notification settings - Fork 9
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
Parallel promotion tasks in bwc_pkg_promote_all do not fail correctly #127
Comments
@blag The reason why the join don't work is because each task on success and on failure transition to process_completion. The workflow engine is basically waiting for all the transition to reach it which in this case will never because |
@m4dcoder I tried both of these parallel workflows and they both had the same behavior. promote_all:
next:
- do:
- promote_bwc_enterprise
- promote_st2_auth_ldap
- promote_st2flow
- promote_bwc_ui
promote_bwc_enterprise:
...
next:
- when: <% succeeded() %>
publish:
- promoted_bwc_enterprise: <% ctx().version + '-' + result().output.revision %>
do:
- process_completion
- when: <% failed() %>
do:
- process_completion_on_failure
promote_st2_auth_ldap:
...
next:
- when: <% succeeded() %>
publish:
- promoted_st2_auth_ldap: <% ctx().version + '-' + result().output.revision %>
do:
- process_completion
- when: <% failed() %>
do:
- process_completion_on_failure
promote_st2flow:
...
next:
- when: <% succeeded() %>
publish:
- promoted_st2flow: <% ctx().version + '-' + result().output.revision %>
do:
- process_completion
- when: <% failed() %>
do:
- process_completion_on_failure
promote_bwc_ui:
...
next:
- when: <% succeeded() %>
publish:
- promoted_bwc_ui: <% ctx().version + '-' + result().output.revision %>
do:
- process_completion
- when: <% failed() %>
do:
- process_completion_on_failure
process_completion:
action: core.noop
join: all
next:
- do:
- set_status_and_notify
process_completion_on_failure:
action: core.noop
join: all
next:
- do:
- set_status_and_notify
set_status_and_notify:
next:
- when: <% succeeded() and (ctx().promoted_bwc_enterprise and ctx().promoted_st2_auth_ldap and ctx().promoted_st2flow and ctx().promoted_bwc_ui) %>
publish:
- promoted: true
do:
- set_notify_success
- when: <% succeeded() and not (ctx().promoted_bwc_enterprise and ctx().promoted_st2_auth_ldap and ctx().promoted_st2flow and ctx().promoted_bwc_ui) %>
publish:
- promoted: false
do:
- set_notify_failure promote_all:
next:
- do:
- promote_bwc_enterprise
- promote_st2_auth_ldap
- promote_st2flow
- promote_bwc_ui
promote_bwc_enterprise:
...
next:
- when: <% succeeded() %>
publish:
- promoted_bwc_enterprise: <% ctx().version + '-' + result().output.revision %>
- do:
- process_completion
promote_st2_auth_ldap:
...
next:
- when: <% succeeded() %>
publish:
- promoted_st2_auth_ldap: <% ctx().version + '-' + result().output.revision %>
- do:
- process_completion
promote_st2flow:
...
next:
- when: <% succeeded() %>
publish:
- promoted_st2flow: <% ctx().version + '-' + result().output.revision %>
- do:
- process_completion
promote_bwc_ui:
...
next:
- when: <% succeeded() %>
publish:
- promoted_bwc_ui: <% ctx().version + '-' + result().output.revision %>
- do:
- process_completion
process_completion:
action: core.noop
join: all
next:
- when: <% succeeded() and (ctx().promoted_bwc_enterprise and ctx().promoted_st2_auth_ldap and ctx().promoted_st2flow and ctx().promoted_bwc_ui) %>
publish:
- promoted: true
do:
- set_notify_success
- when: <% succeeded() and not (ctx().promoted_bwc_enterprise and ctx().promoted_st2_auth_ldap and ctx().promoted_st2flow and ctx().promoted_bwc_ui) %>
publish:
- promoted: false
do:
- set_notify_failure Both workflows failed immediately after all four parallel tasks finished - without ever running Did I misunderstand what you meant? |
Bug identified at StackStorm/orquesta#112 |
This can now proceed. |
Creating an issue as per this comment.
Implementing promotion tasks in parallel does not work correctly - the
process_completion
task is never run, the workflow simply fails after all four tasks fail.Here is the snippet:
The text was updated successfully, but these errors were encountered: