Libvirt fails to start VM with virtio related "unsupported configuration"

Bug #1999803 reported by Nicolas Melot
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Invalid
Undecided
Unassigned

Bug Description

Libvirt fails to start any VM on a fresh OpenStack Zed install on Rocky 9, also freshly installed. The logs show the line below:

[root@cs2 ~]# openstack server delete test; openstack server create --flavor "1CPU-512RAM-0Root-0Pad-0Swap-1RXTX" --image "cirros 0.4.0" --nic net-id=internal --security-group bf35c9bc-84c8-4f43-b1d2-a3fb04231245 --key-name nicolasm-gate test

[root@cs2 ~]# tail -f /var/log/nova/nova.log
....
libvirt.libvirtError: unsupported configuration: domain configuration does not support video model 'virtio'
....

I attached the full log that also include the machine configuration nova generated to start the VM.

I tried installing packages "qemu-kvm-device-display-virtio-vga-7.0.0-13.el9.x86_64", "qemu-kvm-device-display-virtio-gpu-7.0.0-13.el9.x86_64", "qemu-kvm-device-display-virtio-gpu-gl-7.0.0-13.el9.x86_64" and "qemu-kvm-device-display-virtio-vga-gl-7.0.0-13.el9.x86_64", nova/libvirt still fail with the same error, even after restarting nova-compute and libvirtd services, or even the whole computer.

Trying to start a VM with virtio video directly on the host via vist-manager yields the same error:
Unable to complete install: 'unsupported configuration: USB redirection is not supported by this version of QEMU'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 2552, in _do_async_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 495, in start_install
    doboot, transient)
  File "/usr/share/virt-manager/virtinst/guest.py", line 431, in _create_guest
    domain = self.conn.createXML(install_xml or final_xml, 0)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3725, in createXML
    if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirtError: unsupported configuration: USB redirection is not supported by this version of QEMU

Hinting that the problem is probably not on nova's side.

Finally, qemu seems to be able to spawn a VM with virtio vga device:

[root@cs2 ~]# /usr/libexec/qemu-kvm -vga virtio
qemu-kvm: Machine type 'pc-i440fx-rhel7.6.0' is deprecated: machine types for previous major releases are deprecated
qemu-kvm: warning: CPU model qemu64-x86_64-cpu is deprecated -- use at least 'Nehalem' / 'Opteron_G4', or 'host' / 'max'
VNC server running on ::1:5900
^Cqemu-kvm: terminating on signal 2
[root@cs2 ~]#

So the issue seems to be on Libvirt side.

I encountered the same issue on another install on rocky 9, but I do not remember how I solved it. Since the problem happened twice independently, I suppose you might have encountered it too. Are you aware of a solution?

Revision history for this message
Nicolas Melot (nicmel) wrote :
Revision history for this message
Nicolas Melot (nicmel) wrote :
Download full text (3.1 KiB)

The problem seems to have disappeared after I had installed the list of packages below

qemu-kvm-ui-opengl
qemu-kvm-device-display-virtio-gpu
qemu-kvm-device-display-virtio-gpu-gl
qemu-kvm-device-display-virtio-gpu-pci
qemu-kvm-device-display-virtio-gpu-pci-gl
qemu-kvm-device-display-virtio-vga
qemu-kvm-device-display-virtio-vga-gl
qemu-kvm-device-usb-host
qemu-kvm-device-usb-redirect

Problem is, I tried to uninstall them all to check which fixed the issue, but I could not pinpoint to the definitive culprit. I could not remove "qemu-kvm-device-display-virtio-vga" because it would uninstall openstack-nova-compute too. I had another error after I removed "qemu-kvm-device-display-virtio-gpu" that prevented any VM to be powered up.
When these to packages are installed, and every other is uninstalled, I can create VMs, but the logs show the error below:

Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser [None req-bd5cf02f-c95f-4c3e-9c36-3bbc3a66c3a5 1018 dacc3bfe218f4476bb12cc493b98c941 - - default default] Failed to understand rule true: ValueError: not enough values to unpack (expected 2, got 1)
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser Traceback (most recent call last):
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser File "/usr/lib/python3.9/site-packages/oslo_policy/_parser.py", line 209, in _parse_check
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser kind, match = rule.split(':', 1)
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser ValueError: not enough values to unpack (expected 2, got 1)
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser [None req-bd5cf02f-c95f-4c3e-9c36-3bbc3a66c3a5 1018 dacc3bfe218f4476bb12cc493b98c941 - - default default] Failed to understand rule true: ValueError: not enough values to unpack (expected 2, got 1)
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser Traceback (most recent call last):
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser File "/usr/lib/python3.9/site-packages/oslo_policy/_parser.py", line 209, in _parse_check
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser kind, match = rule.split(':', 1)
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser ValueError: not enough values to unpack (expected 2, got 1)
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.752 4266 ERROR oslo_policy._parser
Dec 16 16:37:32 cs2 nova-compute[4266]: 2022-12-16 16:37:32.758 4266 INFO nova.virt.libvirt.driver [None req-bd5cf02f-c95f-4c3e-9c36-3bbc3a66c3a5 1018 dacc3bfe218f4476bb12cc493b98c941 - - default default] [instance: 64271687-6925-4024-8311-f7a4db5453ef] Creating image(s)

I will post again if I encounter the same issue again next time I setup a comp...

Read more...

Revision history for this message
Nicolas Melot (nicmel) wrote :

The "not enough values to unpack" error disappeared from the logs after I fixed a rule in nova's policy.yaml file, from "true" to "value:true"

Revision history for this message
Artom Lifshitz (notartom) wrote :

Sounds like you fixed your host to support virtio, and then your policy file syntax error. Is it OK if I move this to Invalid since this is not a Nova bug?

Changed in nova:
status: New → Invalid
Revision history for this message
Nicolas Melot (nicmel) wrote :

Yes, please proceed

Revision history for this message
jacky (ishijx) wrote :

May be the cpu-module of set VM problem, "host-model" is OK, but host-passthrough that's "libvirt.libvirtError: unsupported configuration: domain configuration does not support video model 'virtio'"

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.