[ovs-dev] [PATCH] Wait for daemons to die in init.d script "stop" commands.

Ben Pfaff blp at nicira.com
Thu Aug 12 11:15:57 PDT 2010


Thanks, pushed.

On Thu, Aug 12, 2010 at 10:38:10AM -0700, Justin Pettit wrote:
> Looks good.
> 
> --Justin
> 
> 
> On Aug 12, 2010, at 10:18 AM, Ben Pfaff wrote:
> 
> > Sometimes it takes a moment for the OVS daemons to die.  When that happens,
> > the "start" half of "openvswitch restart" can fail when ovsdb-tool
> > runs, because ovsdb-server will still have the lock on the database if it
> > has not exited yet.  So this commit just makes the "stop" half wait for
> > the daemons to really die.
> > 
> > Bug #3369.
> > ---
> > debian/openvswitch-switch.init   |    4 ++--
> > xenserver/etc_init.d_openvswitch |    7 +++++++
> > 2 files changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init
> > index a5b6857..a933a21 100755
> > --- a/debian/openvswitch-switch.init
> > +++ b/debian/openvswitch-switch.init
> > @@ -273,13 +273,13 @@ case "$1" in
> >         ;;
> >     stop)
> >         echo -n "Stopping ovs-vswitchd: "
> > -        start-stop-daemon --stop --quiet --oknodo \
> > +        start-stop-daemon --stop --quiet --oknodo --retry 5 \
> >             --pidfile /var/run/openvswitch/ovs-vswitchd.pid \
> >             --exec $ovs_vswitchd
> >         echo "ovs-vswitchd."
> > 
> >         echo -n "Stopping ovsdb-server: "
> > -        start-stop-daemon --stop --quiet --oknodo \
> > +        start-stop-daemon --stop --quiet --oknodo --retry 5 \
> >             --pidfile /var/run/openvswitch/ovsdb-server.pid \
> >             --exec $ovsdb_server
> >         echo "ovsdb-server."
> > diff --git a/xenserver/etc_init.d_openvswitch b/xenserver/etc_init.d_openvswitch
> > index 0988fcc..c52864e 100755
> > --- a/xenserver/etc_init.d_openvswitch
> > +++ b/xenserver/etc_init.d_openvswitch
> > @@ -254,6 +254,13 @@ function stop_daemon {
> >     if test -f "$pidfile"; then
> >         local pid=$(cat "$pidfile")
> >         action "Killing `basename $BINARY` ($pid)" kill $pid
> > +        for delay in .1 .25 .65 1 1 1 1; do
> > +            if kill -0 $pid >/dev/null 2>&1; then
> > +                sleep $delay
> > +            else
> > +                break
> > +            fi
> > +        done
> >         rm -f "$pidfile"
> >     fi
> > }
> > -- 
> > 1.7.1
> > 
> > 
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
> 




More information about the dev mailing list