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

[Xen-changelog] [xen-unstable] tools: init.d/xencommons: Wait for xenstored to start before setting dom0 name



# HG changeset patch
# User Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
# Date 1277820437 -3600
# Node ID 47cf95de0ce13560c9ae6960528d3caad3a08388
# Parent  0429585d7e39220f94d677aef8cd210b5fce7e42
tools: init.d/xencommons: Wait for xenstored to start before setting dom0 name

On one of my boxes, the xenstore-write setting dom0's name starts
before xenstored is actually ready to handle the connection properly,
resulting in the name set failing.  Wait for xenstored to be up and
responding to reads before continuing, timing out after 30 seconds.

Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
---
 tools/hotplug/Linux/init.d/xencommons |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletion(-)

diff -r 0429585d7e39 -r 47cf95de0ce1 tools/hotplug/Linux/init.d/xencommons
--- a/tools/hotplug/Linux/init.d/xencommons     Tue Jun 29 15:06:27 2010 +0100
+++ b/tools/hotplug/Linux/init.d/xencommons     Tue Jun 29 15:07:17 2010 +0100
@@ -37,14 +37,32 @@ fi
 fi
 
 do_start () {
+        local time=0
+       local timeout=30
+
        if ! `xenstore-read -s / >/dev/null 2>&1`
        then
                test -z "$XENSTORED_ROOTDIR" || 
XENSTORED_ROOTDIR="/var/lib/xenstored"
                rm -f "$XENSTORED_ROOTDIR"/tdb* &>/dev/null
                test -z "$XENSTORED_TRACE" || XENSTORED_ARGS=" -T 
/var/log/xen/xenstored-trace.log"
 
-               echo Starting xenstored...
+               echo -n Starting xenstored...
                xenstored --pid-file=/var/run/xenstore.pid $XENSTORED_ARGS
+
+               # Wait for xenstored to actually come up, timing out after 30 
seconds
+                while [ $time -lt $timeout ] && ! `xenstore-read -s / 
>/dev/null 2>&1` ; do
+                    echo -n .
+                   time=$(($time+1))
+                    sleep 1
+                done
+               echo
+
+               # Exit if we timed out
+               if ! [ $time -lt $timeout ] ; then
+                   echo Could not start xenstored
+                   exit 1
+               fi
+
                echo Setting domain 0 name...
                xenstore-write "/local/domain/0/name" "Domain-0"
        fi

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


 


Rackspace

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