generic/561: kill duperemove directly
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 15 Aug 2019 15:19:06 +0000 (08:19 -0700)
committerEryu Guan <guaneryu@gmail.com>
Sun, 18 Aug 2019 15:16:35 +0000 (23:16 +0800)
While the kill statement added in the previous patch usually
suffices to shut down the bash loop that runs the duperemove
processes, for whatever reason this sometimes fails to kill
duperemove.  Kill the duperemove processes directly after removing
the run file, which should cause the bash loop to exit immediately.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/561

index 2f3eff3ca4c0baf18c7d884321c6df8738c08148..26ecff5d40ad338fee924a6fc0fb234ed480c173 100755 (executable)
@@ -47,7 +47,7 @@ function end_test()
        # stop duperemove running
        if [ -e $dupe_run ]; then
                rm -f $dupe_run
-               kill -INT $dedup_pids
+               $KILLALL_PROG -q $DUPEREMOVE_PROG > /dev/null 2>&1
                wait $dedup_pids
        fi
 
@@ -74,7 +74,7 @@ for ((i = 0; i < $((2 * LOAD_FACTOR)); i++)); do
        while [ -e $dupe_run ]; do
                $DUPEREMOVE_PROG -dr --dedupe-options=same $testdir \
                        >>$seqres.full 2>&1
-       done &
+       done 2>&1 | sed -e '/Terminated/d' &
        dedup_pids="$! $dedup_pids"
 done