Ovs error when starting vm: ovs-vsctl: 'del-port' command requires at least 1 arguments

Hi, my system got updated to libvirt 6.0.0 (from 5.6.0) this morning, and now I'm having problems starting VMs that make use of openvswitch portgroups. When I start a VM, I get this error message on virsh:
virsh # start testvm error: Failed to start domain testvm error: An error occurred, but the cause is unknown
The system log contains:
Mar 30 09:45:39 tplinux ovs-vsctl[2763]: ovs|00001|db_ctl_base|ERR|'del-port' command requires at least 1 arguments Mar 30 09:45:39 tplinux libvirtd[735]: internal error: Child process (ovs-vsctl --timeout=5 -- --if-exists del-port) unexpected exit status 1: ovs-vsctl: 'del-port' command requires at least 1 arguments Mar 30 09:45:39 tplinux libvirtd[735]: internal error: Unable to delete port (null) from OVS
My network "test-net" looks like:
<network> <name>test-net</name> <forward mode='bridge'/> <bridge name='test-net'/> <virtualport type='openvswitch'/> <portgroup name='fabric' default='yes'> <vlan trunk='yes'> <tag id='10' nativeMode='untagged'/> <tag id='20'/> <tag id='30'/> <tag id='40'/> <tag id='50'/> <tag id='60'/> <tag id='70'/> </vlan> </portgroup> </network>
And the network in the domain xml file is:
<interface type='network'> <mac address='01:23:45:67:89:ab'/> <source network='test-net' portgroup='fabric'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface>
I didn't see any change in the changelog related to ovs or portgroups. Is there something I need to change in my VM definition? Thanks, Thomas

On 30. 3. 2020 11:10, Thomas Pircher wrote:
Hi,
my system got updated to libvirt 6.0.0 (from 5.6.0) this morning, and now I'm having problems starting VMs that make use of openvswitch portgroups.
I don't see any changes between 5.6.0 and now done to openvswitch in libvirt (apart from harmless code reworks towards glib).
When I start a VM, I get this error message on virsh:
virsh # start testvm error: Failed to start domain testvm error: An error occurred, but the cause is unknown
I suspect this is the problem. Something fails during startup (I think it's creating the TAP device which fails) and later, when clearing up then NULL is passed as "generated" TAP device name. But this is just my guess, because I'm unable to reproduce. But in order to confirm, we need to trace the domain command line generation process. Can you attach debugger to libvirtd, set a break point on virNetDevTapCreateInBridgePort() and step through it to find which function fails, please? Can you please turn on debug logs and share them? https://wiki.libvirt.org/page/DebugLogs Michal

Michal Prívozník wrote:
Can you please turn on debug logs and share them?
Thanks for replying, I have downgraded libvirt back to version 5.6.0 (and VMs were again able to start), but I will try to reproduce the problem on another machine in the next few days and post the logs here. Thanks, Thomas

Thomas Pircher wrote:
Thanks for replying, I have downgraded libvirt back to version 5.6.0 (and VMs were again able to start), but I will try to reproduce the problem on another machine in the next few days and post the logs here.
It turned out the ovs error message was a red herring. I have undefined and redefined the networks and now I don't see the error message any more, but that didn't solve my problem. It turned out that the problem that prevented the VM form starting was that I was using <backingStore> tags for disk volumes... This is onlu supported in v6.1.0, while I was using v6.0.0. Thanks, Thomas
participants (2)
-
Michal Prívozník
-
Thomas Pircher