openvswitch-cfg-update: Fix incorrect controller config.
authorAlex Wang <alexw@nicira.com>
Sat, 28 Feb 2015 18:06:44 +0000 (10:06 -0800)
committerAlex Wang <alexw@nicira.com>
Wed, 11 Mar 2015 21:11:05 +0000 (14:11 -0700)
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@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
xenserver/etc_xapi.d_plugins_openvswitch-cfg-update

index 0668b39..be8b606 100755 (executable)
@@ -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)