UPDATE_REPLACE deletes things before it creates the replacement

Bug #1176142 reported by Clint Byrum
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Heat
Fix Released
High
Zane Bitter

Bug Description

If I change the flavor (instance type) of my server in an update to my stack, I expect it to be replaced. However, I expect that it will be replaced by:

* create new server
* update dependent resources
* delete old server

However, Heat currently does it the other way

* delete old server
* create new server
* update continues (thus updating dependent resources)

This is quite broken, as if a memcache server is deleted and then re-created any dependent resources will be *down* until that new memcache server reaches the 'active' state (and maybe longer if waitconditions are involved)

description: updated
Revision history for this message
Steven Hardy (shardy) wrote :

Yeah, I can confirm this - I wrote the initial UpdateStack code, and I did it this way as it was the simplest way to get things working, agree we should take another look at this and improve it.

Changed in heat:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Steven Hardy (shardy) wrote :

Note that in the specific resize scenario mentioned above, we should eventually be able to support non-replacement resizes via the following BP:

https://blueprints.launchpad.net/heat/+spec/instance-resize-update-stack

Zane Bitter (zaneb)
Changed in heat:
assignee: nobody → Zane Bitter (zaneb)
Steven Hardy (shardy)
Changed in heat:
milestone: none → havana-2
Zane Bitter (zaneb)
Changed in heat:
status: Confirmed → In Progress
Changed in heat:
milestone: havana-2 → havana-3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to heat (master)

Fix proposed to branch: master
Review: https://review.openstack.org/43554

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to heat (master)

Reviewed: https://review.openstack.org/43554
Committed: http://github.com/openstack/heat/commit/46ae6848896a24dece79771037b86cc6f4b53292
Submitter: Jenkins
Branch: master

commit 46ae6848896a24dece79771037b86cc6f4b53292
Author: Zane Bitter <email address hidden>
Date: Tue Aug 27 20:15:08 2013 +0200

    Implement interruption-free update and rollback

    During an update, where a resource must be replaced in its entirety, create
    the replacement resource before deleting the old resource.

    Also, allow rollback to the previous version of the resource without
    replacing it, where that is possible.

    Fixes bug #1176142

    Change-Id: Id89654bad297815bdbcc86f666367772889b5df4

Changed in heat:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in heat:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in heat:
milestone: havana-3 → 2013.2
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.