Currently we call 'hostname -f' when ovs-vswitchd is not running. If you are using ovs-vswitchd to provide your primary networking, then 'hostname -f' will "hang" till it times out. On the system this issue was discovered, this was as long as 40 seconds. This is a problem during OVS restarts or upgrades.
This commit calls 'hostname -f' after ovs-vswitchd has started. Signed-off-by: Gurucharan Shetty <[email protected]> --- utilities/ovs-ctl.in | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in index dc1d02c..97c3c09 100755 --- a/utilities/ovs-ctl.in +++ b/utilities/ovs-ctl.in @@ -75,6 +75,12 @@ ovs_vsctl () { ovs-vsctl --no-wait "$@" } +set_hostname () { + # 'hostname -f' needs network connectivity to work. So we should + # call this only after ovs-vswitchd is running. + ovs_vsctl set Open_vSwitch . external-ids:hostname=$(hostname -f) +} + set_system_ids () { set ovs_vsctl set Open_vSwitch . @@ -108,8 +114,6 @@ set_system_ids () { esac set "$@" external-ids:system-id="\"$SYSTEM_ID\"" - set "$@" external-ids:hostname="\"$(hostname -f)\"" - set "$@" external-ids:rundir="\"$rundir\"" if test X"$SYSTEM_TYPE" != X; then @@ -382,6 +386,7 @@ force_reload_kmod () { else log_warning_msg "Failed to save configuration, not replacing kernel module" start_forwarding + set_hostname add_managers exit 1 fi @@ -405,6 +410,7 @@ force_reload_kmod () { # Start vswitchd by asking it to wait till flow restore is finished. flow_restore_wait start_forwarding || return 1 + set_hostname # Restore saved flows and inform vswitchd that we are done. restore_flows @@ -438,6 +444,7 @@ restart () { # Start vswitchd by asking it to wait till flow restore is finished. flow_restore_wait start_forwarding || return 1 + set_hostname # Restore saved flows and inform vswitchd that we are done. restore_flows @@ -695,6 +702,7 @@ case $command in start) start_ovsdb || exit 1 start_forwarding || exit 1 + set_hostname add_managers ;; stop) -- 1.9.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
