[ovs-dev] [PATCH V2] openvswitch-cfg-update: Fix incorrect controller config.

Alex Wang alexw at nicira.com
Wed Mar 11 21:08:27 UTC 2015


Commit 032c09ddd10 (XenServer: Don't reset on xe-toolstack-restart)
introduced a bug which causes the setting of 'ssl::6632' at xenserver
boot.  Subsequently, at each bridge configuration, ovs will report
'|socket_util|ERR|:6632: bad IPv4 address ""' due to the empty address.

The exact calltrace is:

 0  parse_sockaddr_components (ss=0xbf8dd87c, host_s=0x94c99f0 "",
    port_s=0x94c99f1 "6632", default_port=6632, s=0x948b9dc ":6632")
    at lib/socket-util.c:350
 1  0x081163b5 in inet_parse_active (target_=0x948b9dc ":6632", default_port=
    6632, ss=0xbf8dd87c) at lib/socket-util.c:412
 2  0x08119dcf in stream_parse_target_with_default_port (target=0x948b9d8
    "ssl::6632", default_port=6632, ss=0xbf8dd87c) at lib/stream.c:734
 3  0x0804c946 in collect_in_band_managers (ovs_cfg=0x94433b0,
    managersp=0xbf8dd9a8, n_managersp=0xbf8dd9a0) at vswitchd/bridge.c:516
 4  0x08054b87 in bridge_reconfigure (ovs_cfg=0x94433b0) at vswitchd/bridge.c:
    614
 5  0x080557cf in bridge_run () at vswitchd/bridge.c:2897
 6  0x080564aa in main (argc=155674720, argv=0x0) at vswitchd/ovs-vswitchd.c:
    116

This commit fixes the issue.

Signed-off-by: Alex Wang <alexw at nicira.com>

---
PATCH->V2:
- correct the commit log.
---
 .../etc_xapi.d_plugins_openvswitch-cfg-update      |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
index 0668b39..be8b606 100755
--- a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
+++ b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update
@@ -71,7 +71,8 @@ def update(session, args):
             pass
         removeControllerCfg()
         ret_str += 'Successfully removed controller config.  '
-    elif controller not in currentControllers:
+    # controller cannot be empty, otherwise, this will always be True.
+    elif controller and controller not in currentControllers:
         delete_cacert()
         try:
             emergency_reset(session, None)
-- 
1.7.9.5




More information about the dev mailing list