libvirt.libvirtError: internal error: unable to execute QEMU command 'device_del': Device $device is already in the process of unplug
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Lee Yarwood | ||
Wallaby |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Description
===========
This was initially reported downstream against QEMU in the following bug:
Get libvirtError "Device XX is already in the process of unplug" when detach device in OSP env
https:/
I first saw the error crop up while testing q35 in TripleO in the following job:
2021-04-09 11:09:53.702 8 DEBUG nova.virt.
[..]
2021-04-09 11:09:58.721 8 DEBUG nova.virt.
[..]
2021-04-09 11:09:58.729 8 ERROR oslo.service.
Steps to reproduce
==================
Unclear at present, it looks like a genuine QEMU bug that causes it to fail when a repeat request to device_del a device comes in instead of ignore the request as would previously happen. I've asked for clarification in the downstream QEMU bug.
Expected result
===============
Repeat calls to device_del are ignored or the failure while raised is ignored by Nova.
Actual result
=============
Repeat calls to device_del lead to an error being raised to Nova via libvirt that causes the detach to fail while it still succeeds asynchronously within QEMU.
Environment
===========
1. Exact version of OpenStack you are running. See the following
list for all releases: http://
master
2. Which hypervisor did you use?
(For example: Libvirt + KVM, Libvirt + XEN, Hyper-V, PowerKVM, ...)
What's the version of that?
libvirt + QEMU/KVM
2. Which storage type did you use?
(For example: Ceph, LVM, GPFS, ...)
What's the version of that?
N/A
3. Which networking type did you use?
(For example: nova-network, Neutron with OpenVSwitch, ...)
N/A
Logs & Configs
==============
See above.
https:/ /review. opendev. org/c/openstack /nova/+ /785682 proposed to master