[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-API] Bug#680528: xcp-xapi: /etc/init.d/xendomains cause xapi to hand during boot
Package: xcp-xapi Version: 1.3.2-8 Severity: important During startup /etc/init.d/xendomains script is called. That script is installed with xen-utils-common witch xcp-xapi is depends on. That script calls /usr/sbin/xen as xen list &> /dev/null This 'xen' seems to call xapi: xen list ^Z [1]+ Stopped xen list root@lab-xh3:~# ps f PID TTY STAT TIME COMMAND 3940 pts/6 Ss 0:00 -bash 3982 pts/6 T 0:00 \_ /usr/sbin/xapi list That call is never ends. I think this is not desired behavior: 1) Script xendomains is provided by xen-utils-common 2) /usr/sbin/xen is provided by xen-utils-common 3) 'list' seems be addressed to xm/xl toolstack (not sure) 4) TOOLSTACK is pointing to xapi. 5) XAPI is not ready to serve 'list' domains and start like it expect to be 'initialized', not queried. 6) Boot process do not finish. I think disabling of xendomains should be noted in README.Debian, or, better, checked during installation. Future, it can be fix to xendomains script to exit if toolstack is xapi. Not sure is should be reported to xen package as well. PS Everyone, who affects this problem: update-rc.d xendomains remove -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 3.2.0-3-686-pae (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages xcp-xapi depends on: ii hwdata 0.233-1 ii libc6 2.13-34 ii libpam0g 1.1.3-7.1 ii libuuid1 2.20.1-5.1 ii libvhd0 2.0.90-1 ii libxen-4.1 4.1.3~rc1+hg-20120614.a9c0a89c08f2-4 ii libxenstore3.0 4.1.3~rc1+hg-20120614.a9c0a89c08f2-4 ii lsb-base 4.1+Debian7 ii pciutils 1:3.1.9-5 ii python 2.7.3-1 ii python-xenapi 1.3.2-8 ii stunnel4 [stunnel] 3:4.53-1 ii xcp-eliloader 0.1-4 ii xcp-fe 0.5.2-3+b1 ii xcp-networkd 1.3.2-8 ii xcp-squeezed 1.3.2-8 ii xcp-storage-managers 0.1.1-2 ii xcp-v6d 1.3.2-8 ii xcp-xe 1.3.2-8 ii xen-hypervisor-4.1-amd64 [xen-hypervi 4.1.3~rc1+hg-20120614.a9c0a89c08f2-4 ii xen-utils-4.1 4.1.3~rc1+hg-20120614.a9c0a89c08f2-4 ii zlib1g 1:1.2.7.dfsg-13 Versions of packages xcp-xapi recommends: ii cifs-utils 2:5.5-1 ii xcp-guest-templates 0.1-3 ii xcp-vncterm 0.1-2 xcp-xapi suggests no packages. -- Configuration Files: /etc/init.d/xcp-xapi changed: XAPI_INIT_COMPLETE_COOKIE=/var/run/xapi_init_complete.cookie XAPI_STARTUP_COOKIE=/var/run/xapi_startup.cookie PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="The XenAPI server" NAME=xapi DAEMON=/usr/sbin/$NAME DAEMON_ARGS="-daemon -writereadyfile $XAPI_STARTUP_COOKIE -writeinitcomplete $XAPI_INIT_COMPLETE_COOKIE -onsystemboot" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME TEMPLATES_MD5_STAMP=/var/lib/xcp/templates.md5 [ -x "$DAEMON" ] || exit 0 grep hypervisor /proc/cpuinfo > /dev/null || exit 0 [ -r /etc/default/$NAME ] && . /etc/default/$NAME [ -r /etc/default/xen ] && . /etc/default/xen . /lib/init/vars.sh . /lib/lsb/init-functions if [ "${TOOLSTACK}" != "xapi" ]; then log_failure_msg "Xen toolstack is not set to xapi! Exiting." exit 0 fi if [ -f /var/run/xend.pid ]; then log_failure_msg "/var/run/xend.pid exists; ${NAME} conflicts with xend" exit 1 fi wait_for_xapi() { MAX_RETRIES=50 RETRY=0 while [ ${RETRY} -lt ${MAX_RETRIES} ]; do if [ -e ${XAPI_STARTUP_COOKIE} ]; then return 0 fi sleep 1 RETRY=$(( ${RETRY} + 1 )) done return 1 } do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started modprobe xen-netback modprobe xen-blkback modprobe blktap mkdir -p /var/run/xend/boot mkdir -p /usr/share/xcp/packages/iso export OCAMLRUNPARAM=b rm -f $XAPI_STARTUP_COOKIE $XAPI_INIT_COMPLETE_COOKIE start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. wait_for_xapi # Do some standard setup, e.g. pif-scan, template creation (maybe) . /etc/xcp/inventory xe pif-scan host-uuid=${INSTALLATION_UUID} # Check whether the md5 of the create-templates binary matches the one # used previously. If not, recreate the templates. if [ -e /usr/lib/xcp/lib/create_templates ]; then if ! md5sum -c --status $TEMPLATES_MD5_STAMP ; then /usr/lib/xcp/lib/regenerate-templates start md5sum /usr/lib/xcp/lib/create_templates > $TEMPLATES_MD5_STAMP fi fi } do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0 } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg "Reloading $DESC" "$NAME" #do_reload #log_end_msg $? #;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac : /etc/xcp/pool.conf changed: slave:31.186.98.97 -- no debconf information _______________________________________________ Xen-api mailing list Xen-api@xxxxxxxxxxxxx http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |