[ovs-dev] [PATCH] rhel: Add timeouts to network scripts.

Gurucharan Shetty gshetty at nicira.com
Wed May 9 16:54:54 UTC 2012


On Wed, May 9, 2012 at 9:48 AM, Ben Pfaff <blp at nicira.com> wrote:
> Are you suggesting that we add --no-wait as well?  I think that would
> be unwise, because it introduces a race: sometimes, the new network
> interface will not exist when the script exits.

Thanks. I will send a patch to fix the debian startup scripts that
uses the "--no-wait" option.

~Guru

>
> On Wed, May 09, 2012 at 09:40:23AM -0700, Gurucharan Shetty wrote:
>> Looks good to me. Probably adding the --no-wait along with the timeout
>> option is not that important.
>>
>> On Wed, May 9, 2012 at 9:19 AM, Ben Pfaff <blp at nicira.com> wrote:
>> > From: Brian Kruger <bkruger+ovsdev at gmail.com>
>> >
>> > If the daemon(s) aren't running for whatever reason, the RHEL ovs
>> > ifup/ifdown scripts don't take that into account and an attempt to reboot a
>> > system could take forever. (literally. endless loop!)  Here are a couple of
>> > patches (one of ifup, one for ifdown) to add timeouts (10 seconds), because
>> > it runs per interface you have configured and that could take awhile to
>> > reboot a system if needed.
>> >
>> > Signed-off-by: Brian Kruger <bkruger+ovsdev at gmail.com>
>> > [blp at nicira.com fixed up a conflict against master]
>> > Signed-off-by: Ben Pfaff <blp at nicira.com>
>> > ---
>> > I'm sending this patch out in the standard email form for review.
>> > Guru, will you take a look at it?
>> >
>> > (My apologies if anyone gets multiple copies: the MTA gave me an
>> > error code on the first try.)
>> >
>> >  AUTHORS                                       |    1 +
>> >  rhel/etc_sysconfig_network-scripts_ifdown-ovs |    5 +++--
>> >  rhel/etc_sysconfig_network-scripts_ifup-ovs   |    9 +++++----
>> >  3 files changed, 9 insertions(+), 6 deletions(-)
>> >
>> > diff --git a/AUTHORS b/AUTHORS
>> > index e207f3c..89472b3 100644
>> > --- a/AUTHORS
>> > +++ b/AUTHORS
>> > @@ -8,6 +8,7 @@ Andrew Lambeth          wal at nicira.com
>> >  Andy Southgate          andy.southgate at citrix.com
>> >  Arun Sharma             arun.sharma at calsoftinc.com
>> >  Ben Pfaff               blp at nicira.com
>> > +Brian Kruger            bkruger+ovsdev at gmail.com
>> >  Bryan Phillippe         bp at toroki.com
>> >  Casey Barker            crbarker at google.com
>> >  Chris Wright            chrisw at sous-sol.org
>> > diff --git a/rhel/etc_sysconfig_network-scripts_ifdown-ovs b/rhel/etc_sysconfig_network-scripts_ifdown-ovs
>> > index 3b5252d..19047d8 100755
>> > --- a/rhel/etc_sysconfig_network-scripts_ifdown-ovs
>> > +++ b/rhel/etc_sysconfig_network-scripts_ifdown-ovs
>> > @@ -22,6 +22,7 @@ cd /etc/sysconfig/network-scripts
>> >  [ -f ../network ] && . ../network
>> >
>> >  CONFIG=${1}
>> > +TIMEOUT=10
>> >
>> >  source_config
>> >
>> > @@ -37,12 +38,12 @@ case "$TYPE" in
>> >        OVSBridge)
>> >                ${OTHERSCRIPT} ${CONFIG} $2
>> >                retval=$?
>> > -               ovs-vsctl -- --if-exists del-br "$DEVICE"
>> > +               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-br "$DEVICE"
>> >                ;;
>> >        OVSPort|OVSIntPort|OVSBond)
>> >                ${OTHERSCRIPT} ${CONFIG} $2
>> >                retval=$?
>> > -               ovs-vsctl -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
>> > +               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
>> >                ;;
>> >        *)
>> >                echo $"Invalid OVS interface type $TYPE"
>> > diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs b/rhel/etc_sysconfig_network-scripts_ifup-ovs
>> > index b800ce0..c427879 100755
>> > --- a/rhel/etc_sysconfig_network-scripts_ifup-ovs
>> > +++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs
>> > @@ -22,6 +22,7 @@ cd /etc/sysconfig/network-scripts
>> >  [ -f ../network ] && . ../network
>> >
>> >  CONFIG=${1}
>> > +TIMEOUT=10
>> >
>> >  need_config ${CONFIG}
>> >
>> > @@ -35,7 +36,7 @@ fi
>> >
>> >  case "$TYPE" in
>> >        OVSBridge)
>> > -               ovs-vsctl -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
>> > +               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
>> >                if [ "${OVSBOOTPROTO}" = "dhcp" ] && [ -n "${OVSINTF}" ]; then
>> >                        case " ${OVSDHCPINTERFACES} " in
>> >                                *" ${OVSINTF} "*)
>> > @@ -50,12 +51,12 @@ case "$TYPE" in
>> >        OVSPort)
>> >                /sbin/ifup "$OVS_BRIDGE"
>> >                ${OTHERSCRIPT} ${CONFIG} ${2}
>> > -               ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
>> > +               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
>> >                OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
>> >                ;;
>> >        OVSIntPort)
>> >                /sbin/ifup "$OVS_BRIDGE"
>> > -               ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
>> > +               ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
>> >                ${OTHERSCRIPT} ${CONFIG} ${2}
>> >                ;;
>> >        OVSBond)
>> > @@ -63,7 +64,7 @@ case "$TYPE" in
>> >                for _iface in $BOND_IFACES; do
>> >                        /sbin/ifup ${_iface}
>> >                done
>> > -               ovs-vsctl -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
>> > +               ovs-vsctl -t ${TIMEOUT} -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
>> >                ${OTHERSCRIPT} ${CONFIG} ${2}
>> >                OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
>> >                ;;
>> > --
>> > 1.7.2.5
>> >



More information about the dev mailing list