Detaching encryptors from volumes that are still attached to domains can result in failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Lee Yarwood |
Bug Description
Description
===========
Detaching encryptors from volumes that are still attached to domains can result in failure.
Steps to reproduce
==================
- Attach an encrypted volume to an instance.
- Mount and use the volume within the instance.
- Attempt to detach the volume via Nova while the volume is in-use within the instance.
Expected result
===============
The volume is detached.
Actual result
=============
Nova first attempts to detach the encryptors from the volume that is still attached to the libvirt domain. As a result this can fail with `Device or resource busy` as I/O is still in-flight between the instance and volume.
Environment
===========
1. master, stable/newton.
2. Which hypervisor did you use?
Libvirt + KVM
2. Which storage type did you use?
LVM / iSCSI + LUKS
3. Which networking type did you use?
N/A
Logs & Configs
==============
Failed to detach an encrypted volume
https:/
Changed in nova: | |
assignee: | nobody → Lee Yarwood (lyarwood) |
status: | New → In Progress |
tags: | added: volumes |
tags: | added: libvirt |
Changed in nova: | |
importance: | Undecided → Medium |
Reviewed: https:/ /review. openstack. org/398479 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=d55c5136d0f 7ece722db889a43 75133e827411c0
Committed: https:/
Submitter: Jenkins
Branch: master
commit d55c5136d0f7ece 722db889a437513 3e827411c0
Author: Lee Yarwood <email address hidden>
Date: Wed Nov 16 15:51:02 2016 +0000
libvirt: Detach volumes from a domain before detaching any encryptors
I983f80822a5 introduced retry logic around the detaching of volumes from
a libvirt domain. However it also reordered the surrounding code so that
we attempt to detach any encryptors from a volume first while the volume
is still attached to the domain. This can lead to `Device or resource
busy` errors if the volume is still being used by the instance when we
attempt to detach the encryptors.
Closes-bug: #1642628 bc44bd4592b021d ea978cf4e4f
Change-Id: Ia0f8e725ec8a0f