libvirt openvswitch del-port when it exists
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libvirt (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Trusty |
Fix Released
|
Medium
|
Unassigned |
Bug Description
=======
SRU Justification:
Impact: a VM may fail to start due to a ovs port already existing
Test case:
virsh start vm
service openvswitch-switch stop
virsh destroy vm
service openvswitch-switch start
virsh start vm
Regression potential: this patch has been applied upstream and only changes the ovs command used to create the ovs port. Nothing else should regress.
=======
Please submit a patch from mailing list,
Here is a content:
>-----Original Message-----
>From: Michal Privoznik [mailto:
>Sent: Thursday, July 03, 2014 8:39 PM
>To: Lichunhe; libvir-list redhat com
>Subject: Re: [libvirt] [PATCH]
>
>On 03.07.2014 13:57, Lichunhe wrote:
>> If the ovs service stop abnormal, or host cold reboot, vm is destroyed
>> after ovs service stop. The ovs port which connect to interface of vm
>> will not be clear. When the ovs service restart, recover configuration
>> from db, but the interface is no exist, port recovery failed, and then
>> vm restart on the same host, libvirt add port again, but the port
>> configuration is same as before, ovs will not connect the interface,
>> only store the configuration in db. Below will trigger this problem,
>>
>> virsh start vm
>> service openvswitch-switch stop
>> virsh destroy vm
>> service openvswitch-switch start
>> virsh start vm
>>
>>
>> Signed-off-by: Chunhe Li <lichunhe huawei com>
>> ---
>>
>> src/util/
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/util/
>> b/src/util/
>> --- a/src/util/
>> +++ b/src/util/
>> @@ -84,7 +84,8 @@ int virNetDevOpenvs
>> const char *ifname,
>>
>> cmd = virCommandNew(
>>
>> - virCommandAddAr
>"add-port",
>> + virCommandAddAr
>"del-port",
>> + ifname, "--", "--may-exist", "add-port",
>> brname, ifname, NULL);
>
>So what's the meaning of '--may-exist' then? Does it do anything useful after all?
>
>Michal
Also here is a reproduction of that bug (forgive me these is in Polish, I forgot to do LANG=C)
root@cthulu ~ % virsh start xmbc
błąd: Uruchomienie domeny xmbc nie powiodło się
błąd: Unable to add port vnet4 to OVS bridge br-nfs: Operation not permitted
root@cthulu ~ % ovs-vsctl del-port vnet4
root@cthulu ~ % virsh start xmbc
Domena xmbc została uruchomiona
root@cthulu ~ % virsh start testy
błąd: Uruchomienie domeny testy nie powiodło się
błąd: Unable to add port vnet5 to OVS bridge ovbr0: Operation not permitted
root@cthulu ~ % virsh list --all
root@cthulu ~ % ovs-vsctl del-port vnet5
root@cthulu ~ % virsh start testy
błąd: Uruchomienie domeny testy nie powiodło się
błąd: Unable to add port vnet6 to OVS bridge br-nfs: Operation not permitted
root@cthulu ~ % ovs-vsctl del-port vnet6
root@cthulu ~ % virsh start testy
Domena testy została uruchomiona
Here is the original link:
http://
description: | updated |
Changed in libvirt (Ubuntu): | |
status: | Incomplete → Triaged |
Changed in libvirt (Ubuntu Trusty): | |
importance: | Undecided → Medium |
status: | New → Triaged |
description: | updated |
Thanks for submitting this bug.
Do you know whether
a. this bug affects libvirt in trusty, or only in utopic?
b. If this is fixed in the latest release?
If it is fixed in the latest release then we will suck the fix in with the
next merge. However if the bug also affects trusty then we'll need to
back-port the fix anyway.
status: incomplete
importance: medium