[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Fix xencommons for NetBSD



On Fri, 2011-07-15 at 09:59 +0100, Christoph Egger wrote:
> On 07/15/11 10:01, Ian Campbell wrote:
> > On Fri, 2011-07-15 at 08:38 +0100, Roger Pau Monnà wrote:
> >> # HG changeset patch
> >> # User royger
> >> # Date 1310722656 -7200
> >> # Node ID d3b9e6f9536c84d595276f8c12735736d5593e13
> >> # Parent  8c7e3cfc33b6151fbd4fc6e1aeae132a9b1ccfa5
> >> xencommons NetBSD init script:
> >
> > In general it is useful if the first line of the commit message
> > standsalone as a summary, since hg will often display it that way (e.g.
> > in hg log, on hg web etc).
> >
> >> Clean up of xenstore database on init.
> >> Prevent xenstore from restarting.
> >> Set Domain-0 name on init.
> >>
> >> Signed-off-by: Roger Pau Monne<roger.pau@xxxxxxxxxxxxx>
> >>
> >> diff -r 8c7e3cfc33b6 -r d3b9e6f9536c tools/hotplug/NetBSD/rc.d/xencommons
> >> --- a/tools/hotplug/NetBSD/rc.d/xencommons Fri Jul 15 11:29:21 2011 +0200
> >> +++ b/tools/hotplug/NetBSD/rc.d/xencommons Fri Jul 15 11:37:36 2011 +0200
> >> @@ -23,6 +23,9 @@
> >>   XENSTORED_PIDFILE="/var/run/xenstored.pid"
> >>   XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid"
> >>   XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid"
> >> +#XENBACKENDD_DEBUG=1
> >> +#XENCONSOLED_TRACE=1
> >> +#XENSTORED_TRACE="/var/log/xen/xenconsole-trace.log"
> >>
> >>   xen_precmd()
> >>   {
> >> @@ -33,15 +36,24 @@
> >>
> >>   xen_startcmd()
> >>   {
> >> -  printf "Starting xenservices: xenstored, xenconsoled, xenbackendd.\n"
> >> -  XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}"
> >> -  if [ -n "${XENSTORED_TRACE}" ]; then
> >> -          XENSTORED_ARGS="${XENSTORED_ARGS} -T 
> >> /var/log/xen/xenstored-trace.log"
> >> +  xenstored_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored)
> >> +  if test -z $xenstored_pid; then
> >> +          printf "Cleaning xenstore database.\n"
> >> +          if [ -n "${XENSTORED_ROOTDIR}" ]; then
> >> +                  XENSTORED_ROOTDIR="/var/lib/xenstored"
> >> +          fi
> >> +          rm -f ${XENSTORED_ROOTDIR}/tdb*&>/dev/null
> >> +          printf "Starting xenservices: xenstored, xenconsoled, 
> >> xenbackendd.\n"
> >> +          XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}"
> >> +          if [ -n "${XENSTORED_TRACE}" ]; then
> >> +                  XENSTORED_ARGS="${XENSTORED_ARGS} -T 
> >> /var/log/xen/xenstored-trace.log"
> >> +          fi
> >> +          ${SBINDIR}/xenstored ${XENSTORED_ARGS}
> >> +          sleep 5
> >
> > sleep 5 seems a bit drastic. Perhaps steal the checking loop from the Linux 
> > xencommons?
> 
> I think, the sleep 5 can be reduced to sleep 2 since xenstored launches 
> much faster when there is no xenstored database to check.
> The sleep is there to delay the next start up script which starts xend.
> And starting xend fails when xenstored isn't ready before.

Why hardcode a "2" (which can easily be either too short or too long
depending on circumstances) when you could cut-and-paste something
better (from tools/hotplug/Linux/init.d/xencommons):
        local time=0
        local timeout=30
        ...
                # Wait for xenstored to actually come up, timing out after 30 
seconds
                while [ $time -lt $timeout ] && ! `xenstore-read -s /local 
>/dev/null 2>&1` ; do
                    echo -n .
                    time=$(($time+1))
                    sleep 1
                done

Is $(( ... )) a bashism? `expr $time + 1` instead?

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.