[sheepdog] [PATCH] func/test: _kill_xxx methods use SIGTERM by default

Ruoyu liangry at ucweb.com
Thu Aug 14 05:51:29 CEST 2014


Since the bug, sheep sometimes cannot be killed, is fixed by the commit
f473561, functional tests should use 'pkill' instead of 'pkill -9'
by default. Otherwise, some tests using zookeeper as their cluster
manager will be failure because zookeeper cannot receive the leaving
message at the first time.

For the purpose of killing program forcibly, _kill_xxx_force methods
are added. They kill programs with SIGKILL (-9).

Signed-off-by: Ruoyu <liangry at ucweb.com>
---
 tests/functional/common.rc | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/tests/functional/common.rc b/tests/functional/common.rc
index 20365ce..aa2b825 100644
--- a/tests/functional/common.rc
+++ b/tests/functional/common.rc
@@ -314,7 +314,7 @@ _start_sheep()
 
 _kill_all_dogs()
 {
-    pkill -9 -f "$DOG_PROG (cluster|vdi|node|debug)"
+    pkill -f "$DOG_PROG (cluster|vdi|node|debug)"
 
     while [ $? == 0 ]; do
         pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" > /dev/null
@@ -323,13 +323,40 @@ _kill_all_dogs()
 
 _kill_all_sheeps()
 {
-    pkill -9 -f "$SHEEP_PROG $WD"
+    pkill -f "$SHEEP_PROG $WD"
 
     _wait_for_sheep_stop
 }
 
 _kill_sheep()
 {
+    pkill -f "$SHEEP_PROG $STORE/$1 "
+
+    if [ $? != 0 ]; then
+        _die "cannot kill sheep $1"
+    fi
+
+    _wait_for_sheep_stop $1
+}
+
+_kill_all_dogs_force()
+{
+    pkill -9 -f "$DOG_PROG (cluster|vdi|node|debug)"
+
+    while [ $? == 0 ]; do
+        pgrep -f "$DOG_PROG (cluster|vdi|node|debug)" > /dev/null
+    done
+}
+
+_kill_all_sheeps_force()
+{
+    pkill -9 -f "$SHEEP_PROG $WD"
+
+    _wait_for_sheep_stop
+}
+
+_kill_sheep_force()
+{
     pkill -9 -f "$SHEEP_PROG $STORE/$1 "
 
     if [ $? != 0 ]; then
-- 
1.8.3.2




More information about the sheepdog mailing list