From: Vladimir Saveliev Date: Mon, 9 Apr 2018 09:18:50 +0000 (+0300) Subject: LU-11634 tests: sanityn/test_77 improvements X-Git-Tag: 2.12.52~71 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=43ac1425ad9e8c5fc1e7deff579a443b5c9c7a58;hp=ceadadb374f892e9bc3ae96633b74668749faa72 LU-11634 tests: sanityn/test_77 improvements sshd limits number of simultaneous unauthenticated connections via MaxStartups configuration parameter. By default, 10 connections are allowed. nrs_write_read() tries to run up to 32 do_nodes() in parallel, causing sshd to drop some of connections. The fix is to have do_nodes() to start required number of dd-s in parallel. Minor changes which were probably meant at the development: - Test filenames include $HOSTNAME so that each client worked with its own file, it seems. Add missing escaping backslashes so that $HOSTNAME worked as expected. - Add conv=notrunc parameter for dd-s which write lustre file at different seeks. - Have reading dd-s to read files which were especially created for that. - use /dev/null instead on /dev/zero to throw read data away. Signed-off-by: Vladimir Saveliev Change-Id: I496b0f6b50811351ac8e0e606cf5a20843fab5d4 Cray-bug-id: LUS-2493 Test-Parameters: testlist=sanityn envdefinitions=ONLY=77 Reviewed-on: https://review.whamcloud.com/33607 Reviewed-by: Elena Gryaznova Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andrew Perepechko Reviewed-by: Oleg Drokin --- diff --git a/lustre/tests/sanityn.sh b/lustre/tests/sanityn.sh index 586fbce..a3d505d 100755 --- a/lustre/tests/sanityn.sh +++ b/lustre/tests/sanityn.sh @@ -3123,31 +3123,47 @@ nrs_write_read() { chmod 777 $dir do_nodes $CLIENTS $myRUNAS \ - dd if=/dev/zero of="$dir/nrs_r_$HOSTNAME" bs=1M count=$n || + dd if=/dev/zero of="$dir/nrs_r_\$HOSTNAME" bs=1M count=$n || error "dd at 0 on client failed (1)" - for ((i = 0; i < $n; i++)); do - do_nodes $CLIENTS $myRUNAS dd if=/dev/zero \ - of="$dir/nrs_w_$HOSTNAME" bs=1M seek=$i count=1 || - error "dd at ${i}MB on client failed (2)" & - local pids_w[$i]=$! - done + do_nodes $CLIENTS $myRUNAS \ + "declare -a pids_w; + for ((i = 0; i < $n; i++)); do + dd if=/dev/zero of=$dir/nrs_w_\$HOSTNAME bs=1M \ +seek=\\\$i count=1 conv=notrunc & + pids_w[\\\$i]=\\\$!; + done; + rc_w=0; + for ((i = 0; i < $n; i++)); do + wait \\\${pids_w[\\\$i]}; + newrc=\\\$?; + [ \\\$newrc -gt \\\$rc_w ] && rc_w=\\\$newrc; + done; + exit \\\$rc_w" & + local pid_w=$! do_nodes $CLIENTS sync; cancel_lru_locks osc - for ((i = 0; i < $n; i++)); do - do_nodes $CLIENTS $myRUNAS dd if="$dir/nrs_w_$HOSTNAME" \ - of=/dev/zero bs=1M seek=$i count=1 > /dev/null || - error "dd at ${i}MB on client failed (3)" & - local pids_r[$i]=$! - done + do_nodes $CLIENTS $myRUNAS \ + "declare -a pids_r; + for ((i = 0; i < $n; i++)); do + dd if=$dir/nrs_r_\$HOSTNAME bs=1M of=/dev/null \ +seek=\\\$i count=1 & + pids_r[\\\$i]=\\\$!; + done; + rc_r=0; + for ((i = 0; i < $n; i++)); do + wait \\\${pids_r[\\\$i]}; + newrc=\\\$?; + [ \\\$newrc -gt \\\$rc_r ] && rc_r=\\\$newrc; + done; + exit \\\$rc_r" & + local pid_r=$! cancel_lru_locks osc - for ((i = 0; i < $n; i++)); do - wait ${pids_w[$i]} - wait ${pids_r[$i]} - done - rm -rf $dir || error "rm -rf $dir failed" + wait $pid_w || error "dd (write) failed (2)" + wait $pid_r || error "dd (read) failed (3)" + rm -rvf $dir || error "rm -rf $dir failed" } test_77a() { #LU-3266