** Description changed:

+ ===================================================
+ 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:mprivozn redhat com]
  >Sent: Thursday, July 03, 2014 8:39 PM
  >To: Lichunhe; libvir-list redhat com
  >Subject: Re: [libvirt] [PATCH]util:ovs:Delete port if it is exist when add 
port
  >
  >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/virnetdevopenvswitch.c | 3 ++-
  >>   1 file changed, 2 insertions(+), 1 deletion(-)
  >>
  >> diff --git a/src/util/virnetdevopenvswitch.c
  >> b/src/util/virnetdevopenvswitch.c index 9bcbfb1..dd601c0 100644
  >> --- a/src/util/virnetdevopenvswitch.c
  >> +++ b/src/util/virnetdevopenvswitch.c
  >> @@ -84,7 +84,8 @@ int virNetDevOpenvswitchAddPort(const char *brname,
  >> const char *ifname,
  >>
  >>       cmd = virCommandNew(OVSVSCTL);
  >>
  >> -    virCommandAddArgList(cmd, "--timeout=5", "--", "--may-exist",
  >"add-port",
  >> +    virCommandAddArgList(cmd, "--timeout=5", "--", "--if-exists",
  >"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://www.redhat.com/archives/libvir-list/2014-July/msg00181.html

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1343262

Title:
  libvirt openvswitch del-port when it exists

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1343262/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to