From 3937bbdc07495e1e2dac638b11ccaf1120dd1508 Mon Sep 17 00:00:00 2001 From: grev Date: Tue, 17 Mar 2009 15:54:38 +0000 Subject: [PATCH] b=18804 o=Adilger i=grev t-f and tests remote_* nodsh cleanup --- lustre/tests/lockorder.sh | 4 ++-- lustre/tests/runtests | 48 ++++++++++++++++++------------------------ lustre/tests/sanity.sh | 33 ++++++++++++++++++++++------- lustre/tests/test-framework.sh | 29 +++++++++++++++---------- 4 files changed, 66 insertions(+), 48 deletions(-) diff --git a/lustre/tests/lockorder.sh b/lustre/tests/lockorder.sh index 4d4e7e1..122df46 100644 --- a/lustre/tests/lockorder.sh +++ b/lustre/tests/lockorder.sh @@ -7,9 +7,9 @@ STATMANY=${STATMANY:-statmany} UNLINKMANY=${UNLINKMANY:-unlinkmany} LCTL=${LCTL:-lctl} -MOUNT1=${MOUNT1:-/mnt/lustre1} +MOUNT=${MOUNT:-/mnt/lustre} MOUNT2=${MOUNT2:-/mnt/lustre2} -DIR=${DIR:-$MOUNT1} +DIR=${DIR:-$MOUNT} DIR2=${DIR2:-$MOUNT2} COUNT=${COUNT:-100} diff --git a/lustre/tests/runtests b/lustre/tests/runtests index 8080e31..122a006 100755 --- a/lustre/tests/runtests +++ b/lustre/tests/runtests @@ -18,12 +18,6 @@ SETUP=${SETUP:-setupall} FORMAT=${FORMAT:-formatall} CLEANUP=${CLEANUP:-stopall} -fail() { - echo "ERROR: $1" 1>&2 - [ $2 ] && RC=$2 || RC=1 - exit $RC -} - ERROR= RUNTESTS_SRC=${RUNTESTS_SRC:-"/etc /bin"} [ "$COUNT" ] || COUNT=1000 @@ -59,7 +53,7 @@ USED=`expr $USED + 16` # Some space for the status file # let's start slowly here... START=`date +%s` log "touching $MOUNT at `date`" -touch $MOUNT || fail "can't touch $MOUNT" 2 +touch $MOUNT || error "can't touch $MOUNT" 2 HOSTS=$MOUNT/hosts.$$ TRUNCSIZE=123 @@ -68,18 +62,18 @@ if [ $COUNT -gt 10 -o $COUNT -eq 0 ]; then log "create an empty file $HOSTS" mcreate $HOSTS log "copying /etc/hosts to $HOSTS" - cp /etc/hosts $HOSTS || fail "can't cp /etc/hosts to $HOSTS" 3 + cp /etc/hosts $HOSTS || error "can't cp /etc/hosts to $HOSTS" 3 log "comparing /etc/hosts and $HOSTS" - diff -u /etc/hosts $HOSTS || fail "$HOSTS different" 4 + diff -u /etc/hosts $HOSTS || error "$HOSTS different" 4 log "renaming $HOSTS to $HOSTS.ren" - mv $HOSTS $HOSTS.ren || fail "can't rename $HOSTS to $HOSTS.ren" 5 + mv $HOSTS $HOSTS.ren || error "can't rename $HOSTS to $HOSTS.ren" 5 log "copying /etc/hosts to $HOSTS again" - cp /etc/hosts $HOSTS || fail "can't cp /etc/hosts to $HOSTS again" 6 + cp /etc/hosts $HOSTS || error "can't cp /etc/hosts to $HOSTS again" 6 log "truncating $HOSTS" - > $HOSTS || fail "can't truncate $HOSTS" 8 + > $HOSTS || error "can't truncate $HOSTS" 8 log "removing $HOSTS" - rm $HOSTS || fail "can't remove $HOSTS" 9 - cp /etc/hosts $HOSTS.2 || fail "can't cp /etc/hosts to $HOSTS.2" 7 + rm $HOSTS || error "can't remove $HOSTS" 9 + cp /etc/hosts $HOSTS.2 || error "can't cp /etc/hosts to $HOSTS.2" 7 log "truncating $HOSTS.2 to $TRUNCSIZE bytes" truncate $HOSTS.2 $TRUNCSIZE fi @@ -87,15 +81,15 @@ fi DST=$MOUNT/runtest.$$ # let's start slowly here... log "creating $DST" -mkdir $DST || fail "can't mkdir $DST" 10 +mkdir $DST || error "can't mkdir $DST" 10 # ok, that hopefully worked, so let's do a little more, with files that # haven't changed in the last day (hopefully they don't change during test) FILES=`find $RUNTESTS_SRC -type f -mtime +1 | head -n $COUNT` -[ -z "$FILES" ] && fail "No unchanged files - is $RUNTESTS_SRC a new dir?" +[ -z "$FILES" ] && error "No unchanged files - is $RUNTESTS_SRC a new dir?" log "copying files from $RUNTESTS_SRC to $DST$RUNTESTS_SRC at `date`" -tar cf - $FILES | tar xvf - -C $DST > /dev/null || fail "copying $RUNTESTS_SRC" 11 +tar cf - $FILES | tar xvf - -C $DST > /dev/null || error "copying $RUNTESTS_SRC" 11 log "comparing newly copied files at `date`" for f in $FILES; do @@ -103,7 +97,7 @@ for f in $FILES; do diff -q $f $DST/$f || ERROR=11 done -[ "$ERROR" ] && fail "old and new files are different" $ERROR +[ "$ERROR" ] && error "old and new files are different" $ERROR log "finished at `date` ($(($(date +%s) - START)))" $CLEANUP || exit 19 @@ -115,32 +109,32 @@ for f in $FILES; do diff -q $f $DST/$f || ERROR=22 done -[ "$ERROR" ] && fail "old and new files are different on second diff" $ERROR +[ "$ERROR" ] && error "old and new files are different on second diff" $ERROR $CLEANUP || exit 19 $SETUP || exit 20 log "removing $DST" -rm -r $V $DST || fail "can't remove $DST" 37 +rm -r $V $DST || error "can't remove $DST" 37 if [ $COUNT -gt 10 -o $COUNT -eq 0 ]; then log "renaming $HOSTS.ren to $HOSTS" - mv $HOSTS.ren $HOSTS || fail "can't rename $HOSTS.ren to $HOSTS" 32 + mv $HOSTS.ren $HOSTS || error "can't rename $HOSTS.ren to $HOSTS" 32 log "truncating $HOSTS" - > $HOSTS || fail "can't truncate $HOSTS" 34 + > $HOSTS || error "can't truncate $HOSTS" 34 log "removing $HOSTS" - rm $HOSTS || fail "can't remove $HOSTS again" 36 + rm $HOSTS || error "can't remove $HOSTS again" 36 log "verifying $HOSTS.2 is $TRUNCSIZE bytes" checkstat -s $TRUNCSIZE $HOSTS.2 || \ - fail "$HOSTS.2 isn't $TRUNCSIZE bytes" 37 - rm $HOSTS.2 || fail "can't remove $HOSTS.2" 38 + error "$HOSTS.2 isn't $TRUNCSIZE bytes" 37 + rm $HOSTS.2 || error "can't remove $HOSTS.2" 38 fi # mkdirmany test (bug 589) log "running $MKDIRMANY $MOUNT/base$$ 100" -$MKDIRMANY $MOUNT/base$$ 100 || fail "mkdirmany failed" +$MKDIRMANY $MOUNT/base$$ 100 || error "mkdirmany failed" log "removing mkdirmany directories" -rmdir $MOUNT/base$$* || fail "mkdirmany cleanup failed" +rmdir $MOUNT/base$$* || error "mkdirmany cleanup failed" log "done" diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index cb427b2..c357ec8 100644 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -854,7 +854,7 @@ test_27e() { $SETSTRIPE $DIR/d27/f12 -c 2 && error "lstripe succeeded twice" $CHECKSTAT -t file $DIR/d27/f12 || error "checkstat failed" } -run_test 27e "lstripe existing file (should return error) ======" +run_test 27e "setstripe existing file (should return error) ======" test_27f() { mkdir -p $DIR/d27 @@ -862,7 +862,7 @@ test_27f() { dd if=/dev/zero of=$DIR/d27/f12 bs=4k count=4 || error "dd failed" $GETSTRIPE $DIR/d27/fbad || error "lfs getstripe failed" } -run_test 27f "lstripe with bad stripe size (should return error)" +run_test 27f "setstripe with bad stripe size (should return error)" test_27g() { mkdir -p $DIR/d27 @@ -881,7 +881,7 @@ test_27j() { mkdir -p $DIR/d27 $SETSTRIPE $DIR/d27/f27j -i $OSTCOUNT && error "lstripe failed"||true } -run_test 27j "lstripe with bad stripe offset (should return error)" +run_test 27j "setstripe with bad stripe offset (should return error)" test_27k() { # bug 2844 mkdir -p $DIR/d27 @@ -4012,7 +4012,7 @@ test_102b() { echo "get/set/list trusted.lov xattr ..." [ "$OSTCOUNT" -lt "2" ] && skip "skipping 2-stripe test" && return local testfile=$DIR/$tfile - $SETSTRIPE $testfile -s 65536 -i 1 -c 2 + $SETSTRIPE -s 65536 -i 1 -c 2 $testfile || error "setstripe failed" getfattr -d -m "^trusted" $testfile 2> /dev/null | \ grep "trusted.lov" || error "can't get trusted.lov from $testfile" @@ -4039,7 +4039,7 @@ test_102c() { mkdir -p $DIR/$tdir chown $RUNAS_ID $DIR/$tdir local testfile=$DIR/$tdir/$tfile - $RUNAS $SETSTRIPE $testfile -s 65536 -i 1 -c 2 + $RUNAS $SETSTRIPE -s 65536 -i 1 -c 2 $testfile||error "setstripe failed" $RUNAS getfattr -d -m "^lustre" $testfile 2> /dev/null | \ grep "lustre.lov" || error "can't get lustre.lov from $testfile" @@ -4441,7 +4441,7 @@ test_116() { declare -i FILL FILL=$(($MINV / 4)) echo "Filling 25% remaining space in OST${MINI} with ${FILL}Kb" - $SETSTRIPE $DIR/$tdir/OST${MINI} -i $MINI -c 1 + $SETSTRIPE -i $MINI -c 1 $DIR/$tdir/OST${MINI}||error "setstripe failed" i=0 while [ $FILL -gt 0 ]; do i=$(($i + 1)) @@ -4900,7 +4900,7 @@ test_119b() # bug 11737 { [ "$OSTCOUNT" -lt "2" ] && skip "skipping 2-stripe test" && return - $SETSTRIPE $DIR/$tfile -c 2 + $SETSTRIPE -c 2 $DIR/$tfile || error "setstripe failed" dd if=/dev/zero of=$DIR/$tfile bs=1M count=1 seek=1 || error "dd failed" sync multiop $DIR/$tfile oO_RDONLY:O_DIRECT:r$((2048 * 1024)) || \ @@ -5437,7 +5437,7 @@ test_126() { # bug 12829/13455 run_test 126 "check that the fsgid provided by the client is taken into account" test_127() { # bug 15521 - $LSTRIPE -i 0 -c 1 $DIR/$tfile + $SETSTRIPE -i 0 -c 1 $DIR/$tfile || error "setstripe failed" $LCTL set_param osc.*.stats=0 FSIZE=$((2048 * 1024)) dd if=/dev/zero of=$DIR/$tfile bs=$FSIZE count=1 @@ -6169,6 +6169,23 @@ test_162() { } run_test 162 "path lookup sanity" +test_154() { + # do directio so as not to populate the page cache + log "creating a 10 Mb file" + multiop $DIR/$tfile oO_CREAT:O_DIRECT:O_RDWR:w$((10*1048576))c || error "multiop failed while creating a file" + log "starting reads" + dd if=$DIR/$tfile of=/dev/null bs=4096 & + log "truncating the file" + multiop $DIR/$tfile oO_TRUNC:c || error "multiop failed while truncating the file" + log "killing dd" + kill %+ || true # reads might have finished + echo "wait until dd is finished" + wait + log "removing the temporary file" + rm -rf $DIR/$tfile || error "tmp file removal failed" +} +run_test 154 "parallel read and truncate should not deadlock ===" + test_170() { $LCTL clear # bug 18514 $LCTL debug_daemon start $TMP/${tfile}_log_good diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 6c08618..920e6af 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -1570,10 +1570,14 @@ init_facet_vars () { init_facets_vars () { local DEVNAME - for num in `seq $MDSCOUNT`; do - DEVNAME=`mdsdevname $num` - init_facet_vars mds$num $DEVNAME $MDS_MOUNT_OPTS - done + if ! remote_mds_nodsh; then + for num in `seq $MDSCOUNT`; do + DEVNAME=`mdsdevname $num` + init_facet_vars mds$num $DEVNAME $MDS_MOUNT_OPTS + done + fi + + remote_ost_nodsh && return for num in `seq $OSTCOUNT`; do DEVNAME=`ostdevname $num` @@ -1582,17 +1586,20 @@ init_facets_vars () { } init_param_vars () { - export MDSVER=$(do_facet $SINGLEMDS "lctl get_param version" | cut -d. -f1,2) - export OSTVER=$(do_facet ost1 "lctl get_param version" | cut -d. -f1,2) - export CLIVER=$(lctl get_param version | cut -d. -f 1,2) + if ! remote_ost_nodsh && ! remote_mds_nodsh; then + export MDSVER=$(do_facet $SINGLEMDS "lctl get_param version" | cut -d. -f1,2) + export OSTVER=$(do_facet ost1 "lctl get_param version" | cut -d. -f1,2) + export CLIVER=$(lctl get_param version | cut -d. -f 1,2) + fi + + remote_mds_nodsh || + TIMEOUT=$(do_facet $SINGLEMDS "lctl get_param -n timeout") - TIMEOUT=$(do_facet $SINGLEMDS "lctl get_param -n timeout") log "Using TIMEOUT=$TIMEOUT" if [ "$ENABLE_QUOTA" ]; then setup_quota $MOUNT || return 2 fi - } check_config () { @@ -2071,7 +2078,7 @@ log() { lsmod | grep lnet > /dev/null || load_modules local MSG="$*" - # Get rif of ' + # Get rid of ' MSG=${MSG//\'/\\\'} MSG=${MSG//\(/\\\(} MSG=${MSG//\)/\\\)} @@ -2124,7 +2131,7 @@ run_one() { umask 0022 local BEFORE=`date +%s` - log "== test $testnum: $message ============ `date +%H:%M:%S` ($BEFORE)" + log "== test $testnum: $message == `date +%H:%M:%S` ($BEFORE)" #check_mds export TESTNAME=test_$testnum TEST_FAILED=false -- 1.8.3.1