nova volume-detach fails silently, compute log shows libvirtError: invalid argument: no target device vdb
I'm trying to detach a cinder volume from a nova instance.
Nova volume-list shows it as in-use:
| 34b0ea26-f85c-4b62-8ebd-884b0e63e2d5 | in-use | filestore | 256 | None| 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2 |
The volume is connected via iscsi:
# iscsiadm -m session
tcp: [5] 10.3.40.10:3260,1 iqn.2010-10.org.openstack:volume-34b0ea26-f85c-4b62-8ebd-884b0e63e2d5 (non-flash)
It's visible as /dev/vdb within the instance, and is mountable and read/writable.
However, after unmounting it in the instance and issuing
# nova volume-detach 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2 34b0ea26-f85c-4b62-8ebd-884b0e63e2d5
it does not detach. The volume stays labeled "in-use". I get this error in the compute.log:
libvirtError: invalid argument: no target device vdb
When I run "virsh edit 4" on the compute node, the disk device for vdb is in fact missing. However, when I run "virsh dumpxml 4" it is still there!
How can I untangle this?
Virsh dumpxml vs. edit diff: http://pastebin.com/3CrGbcwu
Compute.log of the error: http://pastebin.com/1UCahB3d
Here's the error from the compute node's compute.log:
2015-03-03 19:19:33.125 12332 AUDIT nova.compute.manager [req-c9695029-1529-49d4-be65-ec2a8fe0db49 918670168a67461bb0bc5fbccba26fd5 012c82ce05cd4739994cf7e103300c2f] [instance: 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2] Detach volume 34b0ea26 -f85c-4