[ovs-dev] [PATCH] rhel: Add timeouts to network scripts.
Ben Pfaff
blp at nicira.com
Wed May 9 16:48:12 UTC 2012
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.
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