fuel 9.0 task ordering issue

Bug #1627855 reported by Brian Hunter
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Invalid
Undecided
Fuel Toolbox

Bug Description

I created a sample fuel plugin to demonstrate the issue we're having with Tesora's DBaaS platform plugin.
https://github.com/Tesora/fuel-plugin-ordering-bug

This demonstration plugin defines a new node role.
It attempts to run just 2 fuels tasks - one on the controller, *followed* by a task on the new group/node role.

This is where we define the tasks:
https://raw.githubusercontent.com/Tesora/fuel-plugin-ordering-bug/master/deployment_tasks.yaml

When we install this plugin and set up an environment, we see the line of 'fuel graph' output we would expect:
"ordering-plugin-controllernode-task" -> "ordering-plugin-othernode-task";

I deploy the environment with 1 node that is controller, and 1 node that is 'ordering-plugin-role'.
We find that the tasks get run in the wrong order:
[root@fuel ~]# grep ordering- /var/log/astute/astute.log | grep 'Run on node'
2016-09-26 19:12:11 INFO [30653] Task[ordering-plugin-othernode-task/2]: Run on node: Node[2]
2016-09-26 19:38:23 INFO [30653] Task[ordering-plugin-controllernode-task/1]: Run on node: Node[1]

We tried a workaround where we added the plugin's new group to the task that was intended to run only on controllers. No workarounds have been successful so far.

I believe this to be a 9.0 regression.
This likely affects any plugin that creates deployment groups, and requires initialization run on controllers.
This reproduces every time.

Changed in fuel:
assignee: nobody → Fuel Sustaining (fuel-sustaining-team)
Dmitry Pyzhov (dpyzhov)
Changed in fuel:
assignee: Fuel Sustaining (fuel-sustaining-team) → Fuel Toolbox (fuel-toolbox)
tags: added: customer-found
Revision history for this message
Alexey Shtokolov (ashtokolov) wrote :

Hi Brian,

There are 2 different types of dependencies between tasks:

Internal:
``requires/required_for`` are requirements for a specific task or stage on the !same! node.

Cross-nodes:
``cross-depends/cross-depended-by`` specify which tasks and stages on !other! nodes are dependent by this task or depends on.

In your case: ``requires: [ordering-plugin-controllernode-task]`` means the internal dependency, but there is no task with that name on ordering-plugin-role

You should you cross-depends:

- id: ordering-plugin-othernode-task
  type: puppet
  groups: [ordering-plugin-role]
  requires: [<<tasks on the same node>>]
  cross-depends:
     - name:ordering-plugin-controllernode-task
  ...

Could you please try again using cross dependencies?

We are updating our docs about tasks. Please take a look on the newest ones:
http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment/workflows/workflows-create/structure.html

Changed in fuel:
milestone: none → 9.2
status: New → Invalid
Revision history for this message
Brian Hunter (bhunter) wrote :

yes, we agree that this bug is entirely Invalid and should be closed.
Thank you, Alexey

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.