[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#953246: marked as done (buster-pu: package openvswitch/2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u1)



Your message dated Sat, 09 May 2020 11:53:52 +0100
with message-id <fd7fa4d56896c35aab49a5a51cb69727dc60e87a.camel@adam-barratt.org.uk>
and subject line Closing requests included in 10.4 point release
has caused the Debian Bug report #953246,
regarding buster-pu: package openvswitch/2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
953246: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=953246
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu

Dear release team,

We experienced (in production) a bug in OVS which lead to ovs-vswitchd
being killed, leading to network downtime in our OpenStack environment.
Attached is the fix. I wish to upload this update to Buster.

On top of this upstream fix, a small typo fix in ifupdown.sh.

Please let me upload
openvswitch/2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u2

Cheers,

Thomas Goirand (zigo)
diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog
--- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog	2019-06-24 08:53:33.000000000 +0200
+++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog	2019-09-19 14:40:49.000000000 +0200
@@ -1,3 +1,11 @@
+openvswitch (2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u2) buster; urgency=medium
+
+  * Fixed debian/ifupdown.sh typo: ovs_vsctl -> ovs-vsctl.
+  * Add patch to fix ovs-vswitchd dying:
+    - Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch
+
+ -- Thomas Goirand <zigo@debian.org>  Thu, 19 Sep 2019 14:40:49 +0200
+
 openvswitch (2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u1) buster; urgency=medium
 
   * Some fixups in debian/ifupdown.sh to allow setting-up the MTU.
diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/ifupdown.sh openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/ifupdown.sh
--- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/ifupdown.sh	2019-06-24 08:53:33.000000000 +0200
+++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/ifupdown.sh	2019-09-19 14:40:49.000000000 +0200
@@ -103,10 +103,10 @@
                     ifdown --allow="${IFACE}" ${IF_OVS_PORTS}
                 fi
 
-                ovs_vsctl -- --if-exists del-br "${IFACE}"
+                ovs-vsctl -- --if-exists del-br "${IFACE}"
                 ;;
         OVSPort|OVSIntPort|OVSBond|OVSPatchPort|OVSTunnel)
-                ovs_vsctl -- --if-exists del-port "${IF_OVS_BRIDGE}" "${IFACE}"
+                ovs-vsctl -- --if-exists del-port "${IF_OVS_BRIDGE}" "${IFACE}"
                 ;;
         *)
                 exit 0
diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch
--- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch	1970-01-01 01:00:00.000000000 +0100
+++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch	2019-09-19 14:40:49.000000000 +0200
@@ -0,0 +1,87 @@
+Author: Numan Siddique <nusiddiq@redhat.com>
+Date: Thu, 18 Oct 2018 16:47:05 +0530
+Description: connmgr: Fix vswitchd abort when a port is added and the controller is down
+ We see the below trace when a port is added to a bridge and the configured
+ controller is down
+ .
+ 0x00007fb002f8b207 in raise () from /lib64/libc.so.6
+ 0x00007fb002f8c8f8 in abort () from /lib64/libc.so.6
+ 0x00007fb004953026 in ofputil_protocol_to_ofp_version () from /lib64/libopenvswitch-2.10.so.0
+ 0x00007fb00494e38e in ofputil_encode_port_status () from /lib64/libopenvswitch-2.10.so.0
+ 0x00007fb004ef1c5b in connmgr_send_port_status () from /lib64/libofproto-2.10.so.0
+ 0x00007fb004efa9f4 in ofport_install () from /lib64/libofproto-2.10.so.0
+ 0x00007fb004efbfb2 in update_port () from /lib64/libofproto-2.10.so.0
+ 0x00007fb004efc7f9 in ofproto_port_add () from /lib64/libofproto-2.10.so.0
+ 0x0000556d540a3f95 in bridge_add_ports__ ()
+ 0x0000556d540a5a47 in bridge_reconfigure ()
+ 0x0000556d540a9199 in bridge_run ()
+ 0x0000556d540a02a5 in main ()
+ .
+ The abort is because of ofputil_protocol_to_ofp_version() is called with invalid
+ protocol - OFPUTIL_P_NONE. Please see [1] for more details. Similar aborts are
+ seen as reported in [2].
+ .
+ The commit [3] changed the behavior of the function rconn_get_version().
+ Before the commit [3], the function ofconn_receives_async_msg() would always
+ return false if the connection to the controller was down, since
+ rconn_get_version() used to return -1. This patch now checks the rconn
+ connection status in ofconn_receives_async_msg() and returns false if not
+ connected. This would avoid the aborts seen in the above stack trace.
+ .
+ The issue can be reproduced by running the test added in this patch
+ without the fix.
+ .
+ [1] - https://bugzilla.redhat.com/show_bug.cgi?id=1640045
+ [2] - https://bugzilla.redhat.com/show_bug.cgi?id=1637926
+ .
+ [3] - 476d2551ab ("rconn: Introduce new invariant to fix assertion failure in corner case.")
+Signed-off-by: Numan Siddique <nusiddiq@redhat.com>
+Signed-off-by: Ben Pfaff <blp@ovn.org>
+Acked-by: Eelco Chaudron <echaudro@redhat.com>
+Origin: upstream, https://github.com/openvswitch/ovs/commit/903f6c4f8a9bce51984435ca3990f2717c63f703.patch
+Last-Update: 2020-03-06
+
+diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c
+index 50e0b8f991..9431200249 100644
+--- a/ofproto/connmgr.c
++++ b/ofproto/connmgr.c
+@@ -1538,6 +1538,10 @@ ofconn_receives_async_msg(const struct ofconn *ofconn,
+     ovs_assert(reason < 32);
+     ovs_assert((unsigned int) type < OAM_N_TYPES);
+ 
++    if (!rconn_is_connected(ofconn->rconn)) {
++        return false;
++    }
++
+     /* Keep the following code in sync with the documentation in the
+      * "Asynchronous Messages" section in 'topics/design' */
+ 
+diff --git a/tests/bridge.at b/tests/bridge.at
+index 1c36185632..ee398bdb1e 100644
+--- a/tests/bridge.at
++++ b/tests/bridge.at
+@@ -79,3 +79,24 @@ AT_CHECK([ovs-vsctl --columns=status list controller | dnl
+ OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
+ OVS_APP_EXIT_AND_WAIT([ovsdb-server])
+ AT_CLEANUP
++
++AT_SETUP([bridge - add port after stopping controller])
++OVS_VSWITCHD_START
++
++dnl Start ovs-testcontroller
++ovs-testcontroller --detach punix:controller --pidfile=ovs-testcontroller.pid
++OVS_WAIT_UNTIL([test -e controller])
++
++AT_CHECK([ovs-vsctl set-controller br0 unix:controller])
++AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=internal], [0], [ignore])
++AT_CHECK([ovs-appctl -t ovs-vswitchd version], [0], [ignore])
++
++# Now kill the ovs-testcontroller
++kill `cat ovs-testcontroller.pid`
++OVS_WAIT_UNTIL([! test -e controller])
++AT_CHECK([ovs-vsctl --no-wait add-port br0 p2 -- set Interface p2 type=internal], [0], [ignore])
++AT_CHECK([ovs-appctl -t ovs-vswitchd version], [0], [ignore])
++
++OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
++OVS_APP_EXIT_AND_WAIT([ovsdb-server])
++AT_CLEANUP
diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series
--- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series	2019-06-24 08:53:33.000000000 +0200
+++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series	2019-09-19 14:40:49.000000000 +0200
@@ -10,3 +10,4 @@
 blacklist-ofproto-async-msg-ctrl-of1.3-because-of-mips.patch
 remove-yet-another-mips-failing-test.patch
 remove-non-deterministic-tests.patch
+Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch

--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 10.4

Hi,

Each of the uploads referred to by these bugs was included in today's
stable point release.

Regards,

Adam

--- End Message ---

Reply to: