Async HeatStack may never be executed
Bug #1643702 reported by
Stan Lagun
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Murano |
Fix Released
|
Undecided
|
Victor Ryzhenkin |
Bug Description
As of recent there is an async parameter to HeatStack.push() method that allows to delay the push and do it asynchronously. The issue is that if the thread that called the push() methods happen to exit by that time the data will never be submitted to Heat. This can be demonstrated by making Instance destruction use async push. The instance is not going to be deleted because the destruction thread exits early.
Changed in murano: | |
assignee: | nobody → Stan Lagun (slagun) |
Changed in murano: | |
status: | New → In Progress |
Changed in murano: | |
assignee: | Stan Lagun (slagun) → Victor Ryzhenkin (vryzhenkin) |
To post a comment you must log in.
Reviewed: https:/ /review. openstack. org/400409 /git.openstack. org/cgit/ openstack/ murano/ commit/ ?id=a19a66707ba df4c6750c5fb3ae a60ddfd67bdc88
Committed: https:/
Submitter: Jenkins
Branch: master
commit a19a66707badf4c 6750c5fb3aea60d dfd67bdc88
Author: Stan Lagun <email address hidden>
Date: Mon Nov 21 13:18:34 2016 -0800
HeatStack async mode fix
Improve asynchronous push mode of HeatStack:
- Use spawn_after instead of spawn_after_local. Otherwise the data is never
pushed if the initiated thread were to exit
- Cancel background thread instead of killing it. Cancel cancels the thread
only if it hasn't started yet instead of killing it somewhere in the middle.
- Add post-execution cleanup to guarantee that async data push happens
before the execution session end
- Make Instance destruction use async push to speed up the destruction
in case when there are many servers and to test the HeatStack async mode
Closes-Bug: #1643702 73d2cac62c2e6d6 7d047f75164
Change-Id: I11d157844cb1d9