[Pkg-xen-changes] r988 - trunk/xen/debian

Bastian Blank waldi at alioth.debian.org
Sun Apr 22 20:36:10 UTC 2012


Author: waldi
Date: Sun Apr 22 20:36:09 2012
New Revision: 988

Log:
debian/xen-utils-common.xendomains.init
- Remove old watchdog function.
- Use SIGINT to kill process.
- Move timeout definition.

Modified:
   trunk/xen/debian/xen-utils-common.xendomains.init

Modified: trunk/xen/debian/xen-utils-common.xendomains.init
==============================================================================
--- trunk/xen/debian/xen-utils-common.xendomains.init	Sun Apr 22 20:13:10 2012	(r987)
+++ trunk/xen/debian/xen-utils-common.xendomains.init	Sun Apr 22 20:36:09 2012	(r988)
@@ -220,44 +220,16 @@
     return 0
 }
 
-# Wait for max $XENDOMAINS_STOP_MAXWAIT for $CMD $1 to finish;
-# if it has not exited by that time kill it, so the init script will
-# succeed within a finite amount of time; if $2 is nonnull, it will
-# kill the command as well as soon as no domain (except for zombies)
-# are left (used for shutdown --all). Third parameter, if any, suppresses
-# output of dots per working state (formatting issues)
-watchdog_xencmd()
-{
-    if test -z "$XENDOMAINS_STOP_MAXWAIT" -o "$XENDOMAINS_STOP_MAXWAIT" = "0"; then
-	exit
-    fi
-
-    usleep 20000
-    for no in `seq 0 $XENDOMAINS_STOP_MAXWAIT`; do
-	# exit if $CMD save/migrate/shutdown is finished
-	PSAX=`ps axlw | grep "xen $1" | grep -v grep`
-	if test -z "$PSAX"; then exit; fi
-	if ! test -n "$3"; then echo -n '.'; fi
-	sleep 1
-	# go to kill immediately if there's only zombies left
-	if all_zombies && test -n "$2"; then break; fi
-    done
-    sleep 1
-    read PSF PSUID PSPID PSPPID < <(echo "$PSAX")
-    # kill $CMD $1
-    kill $PSPID >/dev/null 2>&1
-    
-    echo -e .
-}
-
 coproc_timeout()
 {
-  for no in `seq 0 $XENDOMAINS_STOP_MAXWAIT`; do
+  TIMEOUT="$1"
+  for no in $(seq 0 $TIMEOUT); do
     if [ -z "$COPROC_PID" ]; then return 0; fi
     sleep 1
     log_action_cont_msg
   done
-  kill "$COPROC_PID" >/dev/null 2>&1
+  kill -INT "$COPROC_PID" >/dev/null 2>&1
+  wait $COPROC_PID
   return 1
 }
 
@@ -266,7 +238,7 @@
   while read id name rest; do
     log_action_begin_msg "Migrating Xen domain $name ($id)"
     coproc xen migrate $id $XENDOMAINS_MIGRATE 2>&1 1>/dev/null
-    coproc_timeout
+    coproc_timeout "$XENDOMAINS_STOP_MAXWAIT"
     log_action_end_msg $?
   done < <(/usr/lib/xen-common/bin/xen-init-list)
 }
@@ -277,7 +249,7 @@
     log_action_begin_msg "Saving Xen domain $name ($id)"
     mkdir -p "$XENDOMAINS_SAVE"
     coproc xen save $id $XENDOMAINS_SAVE/$name 2>&1 1>/dev/null
-    coproc_timeout
+    coproc_timeout "$XENDOMAINS_STOP_MAXWAIT"
     log_action_end_msg $?
   done < <(/usr/lib/xen-common/bin/xen-init-list)
 }
@@ -286,7 +258,7 @@
 {
   log_action_begin_msg "Shutting down all Xen domains"
   coproc xen shutdown --all $XENDOMAINS_SHUTDOWN_ALL 2>&1 1>/dev/null
-  coproc_timeout
+  coproc_timeout "$XENDOMAINS_STOP_MAXWAIT"
   log_action_end_msg $?
 }
 



More information about the Pkg-xen-changes mailing list