Nova assumes that a volume is fully detached from the compute if the volume is not defined in the instance's libvirt definition
Bug #1727260 reported by
Sahid Orentino
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Sahid Orentino | ||
Pike |
Fix Committed
|
High
|
Chris Friesen | ||
Queens |
Fix Committed
|
High
|
Sahid Orentino |
Bug Description
During a volume detach operation, Nova compute attempts to remove the volume from libvirt for the instance before proceeding to remove the storage lun from the underlying compute host. If Nova discovers that the volume was not found in the instance's libvirt definition then it ignores that error condition and returns (after issuing a warning message "Ignoring DiskNotFound exception while detaching").
However, under certain failure scenarios it may be that although the libvirt definition for the volume has been removed for the instance that the associated storage lun on the compute server may not have been fully cleaned up yet.
Changed in nova: | |
assignee: | nobody → sahid (sahid-ferdjaoui) |
Changed in nova: | |
status: | New → In Progress |
To post a comment you must log in.
We have seen this downstream where an initial volume detach fails due to multipath "map in use" during the detach from the hypervisor host, after the volume was already detached from the guest. The volume remains connected in cinder (which is correct). However, when a second detach is tried, nova finds the volume already detached from the guest and assumes it was also successfully detached from the hypervisor host, which is not necessarily true. So it continues on to terminate the connection in cinder, which results in failed paths in multipathd.