]> sourceware.org Git - lvm2.git/commitdiff
tests: rename kill_tagged_processes
authorZdenek Kabelac <zkabelac@redhat.com>
Thu, 30 Apr 2015 16:42:31 +0000 (18:42 +0200)
committerZdenek Kabelac <zkabelac@redhat.com>
Fri, 1 May 2015 13:07:58 +0000 (15:07 +0200)
Better name for aux function.
First use normal -TERM, and only after a while use -KILL
(leaving some time to correctly finish)
Print INFO about killed processes.

test/lib/aux.sh
test/shell/pvmove-abort-all.sh
test/shell/pvmove-abort.sh
test/shell/pvmove-restart.sh
test/shell/pvmove-resume-1.sh
test/shell/pvmove-resume-2.sh
test/shell/pvmove-resume-multiseg.sh

index e20b6b054e9f513501750b99f06a95a8459949c6..716d596edf57138b3d5368302edafc2966b15efa 100644 (file)
@@ -233,17 +233,36 @@ kill_sleep_kill_() {
 }
 
 print_procs_by_tag_() {
-       ps -o pid=,args= ehax 2>/dev/null | grep -weLVM_TEST_TAG=${1:-kill_me_$PREFIX} 2>/dev/null || true
+       (ps -o pid,args ehax | grep -we"LVM_TEST_TAG=${1:-kill_me_$PREFIX}") || true
 }
 
 count_processes_with_tag() {
        print_procs_by_tag_ | wc -l
 }
 
-kill_listed_processes() {
-       while read pid b; do
-               test -z "$pid" || kill -9 $pid
-       done <<< $(print_procs_by_tag_ $@)
+kill_tagged_processes() {
+       local pid
+       local pids
+       local wait
+
+       # read uses all vars within pipe subshell
+       print_procs_by_tag_ "$@" | while read -r pid wait; do
+               if test -n "$pid" ; then
+                       echo "Killing tagged process: $pid ${wait:0:120}..."
+                       kill -TERM $pid 2>/dev/null || true
+               fi
+               pids="$pids $pid"
+       done
+
+       # wait if process exited and eventually -KILL
+       wait=0
+       for pid in $pids ; do
+               while ps $pid > /dev/null && test $wait -le 10; do
+                       sleep .2
+                       wait=$(($wait + 1))
+               done
+               test $wait -le 10 || kill -KILL $pid 2>/dev/null || true
+       done
 }
 
 teardown() {
@@ -252,7 +271,7 @@ teardown() {
 
        if test -f TESTNAME ; then
 
-       kill_listed_processes
+       kill_tagged_processes
 
        kill_sleep_kill_ LOCAL_LVMETAD ${LVM_VALGRIND_LVMETAD:-0}
 
index 5bca8a22f7491767bb1f4253dd4f1785388064cc..da43da65f80981fcf7495964be1b3b463ffd8f7c 100644 (file)
@@ -67,7 +67,7 @@ not grep "^\[pvmove" out
 lvremove -ff $vg $vg1
 
 wait
-aux kill_listed_processes
+aux kill_tagged_processes
 done
 done
 
index 2332521761410cfb3fed9cfeb17a55240818fe5a..6b807acd412b83f5d0f866c72fb7f81e022d7ebc 100644 (file)
@@ -58,7 +58,7 @@ pvmove --abort
 lvremove -ff $vg
 
 wait
-aux kill_listed_processes
+aux kill_tagged_processes
 done
 done
 
index b91f6244e521fe704844ca36bbf82bef61d56d52..1496b359d2f1a489b4535b6deaf3bcd3c5a6bdd6 100644 (file)
@@ -90,7 +90,7 @@ pvmove --abort
 lvs -a -o+devices $vg
 
 lvremove -ff $vg
-aux kill_listed_processes
+aux kill_tagged_processes
 done
 
 # Restore delayed device back
index 9825e76d56f4457e7b6fdcbb4886c539a3ef028d..acf35eee2488f1d09e7aee5c35e915bbd1e8043f 100644 (file)
@@ -98,7 +98,7 @@ test_pvmove_resume() {
                i=$((i + 1))
        done
 
-       aux kill_listed_processes
+       aux kill_tagged_processes
 
        lvremove -ff $vg $vg1
 }
index dee82cc7c38d767bee83cb1559cc57d6301c7ae8..37a552d6069cc7e71f730e5e4480aae1974e4c04 100644 (file)
@@ -80,7 +80,7 @@ test_pvmove_resume() {
                i=$((i + 1))
        done
 
-       aux kill_listed_processes
+       aux kill_tagged_processes
 
        lvremove -ff $vg
 }
index d70662d3556b0b9cb9a80f50c4c2907affefe0a2..be21d5602a3b208b631885a6dd12953a4ddb7067 100644 (file)
@@ -92,7 +92,7 @@ test_pvmove_resume() {
                i=$((i + 1))
        done
 
-       aux kill_listed_processes
+       aux kill_tagged_processes
 
        lvremove -ff $vg
 }
This page took 0.042949 seconds and 5 git commands to generate.