From d0f6fbaff383d0ea0b11f4e4547d6b062ef7ddad Mon Sep 17 00:00:00 2001 From: chrisrd Date: Sat, 3 Mar 2018 04:57:29 +1100 Subject: [PATCH] ZTS: fix spurious failures in mv_files The test could fail because of a race condition between the files being generated in the background and attempting to move the files. Wait for all file generation to complete before trying to move the files around. Also, clean up the waiting: the 'wait' command without arguments waits for all child pids. Reviewed-by: George Melikov Reviewed-by: Brian Behlendorf Signed-off-by: Chris Dunlop Closes #7220 Closes #7242 Closes #7258 --- .../functional/mv_files/mv_files_common.kshlib | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/tests/zfs-tests/tests/functional/mv_files/mv_files_common.kshlib b/tests/zfs-tests/tests/functional/mv_files/mv_files_common.kshlib index c48c07d8d0..6728e950bd 100644 --- a/tests/zfs-tests/tests/functional/mv_files/mv_files_common.kshlib +++ b/tests/zfs-tests/tests/functional/mv_files/mv_files_common.kshlib @@ -108,16 +108,6 @@ function init_setup } -function wait_pid -{ - for pid in $1 - do - ps -e | grep $pid >/dev/null 2>&1 - (( $? == 0 )) && wait $pid - done -} - - # # Generate given number files in a # directory of zfs file system @@ -141,18 +131,17 @@ function generate_files cp /etc/passwd $1/file_$count \ > /dev/null 2>&1 & - PIDS="$PIDS $!" + (( proc_num = proc_num + 1 )) - proc_num=`echo $PIDS | wc -w` if (( proc_num >= GANGPIDS )); then - wait_pid "$PIDS" + wait proc_num=0 - PIDS="" fi (( count = count + 1 )) done + wait } #