unshelving an instance doesn't rollback volumes connections on failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Matt Riedemann | ||
Ocata |
Fix Committed
|
Medium
|
Matt Riedemann | ||
Pike |
Fix Committed
|
Medium
|
Matt Riedemann | ||
Queens |
Fix Committed
|
Medium
|
Lee Yarwood |
Bug Description
When creating and instance and it is being spawned for the first time fails, the instance's volumes' initialize_
The reason is that when spawning an instance for the first time, nova-compute calls initialize_
https:/
That context-aware method will also take care of rollback in case of a failure in spawning, and will terminate_
https:/
But, when unshelving an instance, initialize_
https:/
This makes the volumes stay connected to the node even-though the instance is shelved-offloaded.
If you want to see this problem, replace the driver.spawn() call with a "raise Exception", and see the volumes have connection to the node even though they shouldn't have.
I'm using openstack Liberty, but I can see this problem in current master (pre-Newton)
tags: | added: compute shelve unshelve |
Changed in nova: | |
status: | New → Confirmed |
summary: |
- unshelving an instance doesn't rollback volumes connections + unshelving an instance doesn't rollback volumes connections on failure |
Changed in nova: | |
assignee: | Shoham Peller (shoham-peller) → Matt Riedemann (mriedem) |
Changed in nova: | |
assignee: | Matt Riedemann (mriedem) → Shoham Peller (shoham-peller) |
importance: | Low → Medium |
Changed in nova: | |
assignee: | Shoham Peller (shoham-peller) → Matt Riedemann (mriedem) |
Sounds like _unshelve_instance in the compute manager just needs to call _shutdown_instance in case of a failure from the virt driver.spawn() method, like in _build_resources.