X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fsanityn.sh;h=294b4966bf4a2c7699ceff047f96eda44d033312;hb=b63efc864794860f84f852ba3c89390676b18070;hp=26ee31432c75fe4e03428bac9ee6dacbe67f5e42;hpb=f5f3670b5fa3e972929d732f4d217c6a8442f014;p=fs%2Flustre-release.git diff --git a/lustre/tests/sanityn.sh b/lustre/tests/sanityn.sh index 26ee314..294b4966 100644 --- a/lustre/tests/sanityn.sh +++ b/lustre/tests/sanityn.sh @@ -322,18 +322,41 @@ run_test 14d "chmod of executing file is still possible ========" test_15() { # bug 974 - ENOSPC echo "PATH=$PATH" sh oos2.sh $MOUNT1 $MOUNT2 + wait_delete_completed grant_error=`dmesg | grep "> available"` [ -z "$grant_error" ] || error "$grant_error" } run_test 15 "test out-of-space with multiple writers ===========" +COUNT=${COUNT:-2500} +# The FSXNUM reduction for ZFS is needed until ORI-487 is fixed. +# We don't want to skip it entirely, but ZFS is VERY slow and cannot +# pass a 2500 operation dual-mount run within the time limit. +if [ "$(facet_fstype ost1)" = "zfs" ]; then + FSXNUM=$((COUNT / 5)) + FSXP=1 +elif [ "$SLOW" = "yes" ]; then + FSXNUM=$((COUNT * 5)) + FSXP=500 +else + FSXNUM=$COUNT + FSXP=100 +fi + test_16() { - rm -f $MOUNT1/fsxfile - lfs setstripe $MOUNT1/fsxfile -c -1 # b=10919 - fsx -c 50 -p 100 -N 2500 -l $((SIZE * 256)) -S 0 $FSXOPT \ - $MOUNT1/fsxfile $MOUNT2/fsxfile + local file1=$DIR1/$tfile + local file2=$DIR2/$tfile + + # to allocate grant because it may run out due to test_15. + lfs setstripe -c -1 $file1 + dd if=/dev/zero of=$file1 bs=$STRIPE_BYTES count=$OSTCOUNT oflag=sync + dd if=/dev/zero of=$file2 bs=$STRIPE_BYTES count=$OSTCOUNT oflag=sync + rm -f $file1 + + lfs setstripe -c -1 $file1 # b=10919 + fsx -c 50 -p $FSXP -N $FSXNUM -l $((SIZE * 256)) -S 0 $file1 $file2 } -run_test 16 "2500 iterations of dual-mount fsx =================" +run_test 16 "$FSXNUM iterations of dual-mount fsx" test_17() { # bug 3513, 3667 remote_ost_nodsh && skip "remote OST with nodsh" && return @@ -367,26 +390,33 @@ test_18() { run_test 18 "mmap sanity check =================================" test_19() { # bug3811 - [ -d /proc/fs/lustre/obdfilter ] || return 0 + local node=$(facet_active_host ost1) + + # check whether obdfilter is cache capable at all + if ! get_obdfilter_param $node '' read_cache_enable >/dev/null; then + echo "not cache-capable obdfilter" + return 0 + fi - MAX=`lctl get_param -n obdfilter.*.readcache_max_filesize | head -n 1` - lctl set_param -n obdfilter.*OST*.readcache_max_filesize=4096 - dd if=/dev/urandom of=$TMP/f19b bs=512k count=32 - SUM=`cksum $TMP/f19b | cut -d" " -f 1,2` - cp $TMP/f19b $DIR1/f19b + local MAX=$(get_obdfilter_param $node '' readcache_max_filesize | \ + head -n 1) + set_obdfilter_param $node '' readcache_max_filesize 4096 + dd if=/dev/urandom of=$TMP/$tfile bs=512k count=32 + local SUM=$(cksum $TMP/$tfile | cut -d" " -f 1,2) + cp $TMP/$tfile $DIR1/$tfile for i in `seq 1 20`; do - [ $((i % 5)) -eq 0 ] && log "test_18 loop $i" + [ $((i % 5)) -eq 0 ] && log "$testname loop $i" cancel_lru_locks osc > /dev/null - cksum $DIR1/f19b | cut -d" " -f 1,2 > $TMP/sum1 & \ - cksum $DIR2/f19b | cut -d" " -f 1,2 > $TMP/sum2 + cksum $DIR1/$tfile | cut -d" " -f 1,2 > $TMP/sum1 & \ + cksum $DIR2/$tfile | cut -d" " -f 1,2 > $TMP/sum2 wait - [ "`cat $TMP/sum1`" = "$SUM" ] || \ - error "$DIR1/f19b `cat $TMP/sum1` != $SUM" - [ "`cat $TMP/sum2`" = "$SUM" ] || \ - error "$DIR2/f19b `cat $TMP/sum2` != $SUM" + [ "$(cat $TMP/sum1)" = "$SUM" ] || \ + error "$DIR1/$tfile $(cat $TMP/sum1) != $SUM" + [ "$(cat $TMP/sum2)" = "$SUM" ] || \ + error "$DIR2/$tfile $(cat $TMP/sum2) != $SUM" done - lctl set_param -n obdfilter.*OST*.readcache_max_filesize=$MAX - rm $DIR1/f19b + set_obdfilter_param $node '' readcache_max_filesize $MAX + rm $DIR1/$tfile } run_test 19 "test concurrent uncached read races ===============" @@ -469,7 +499,7 @@ run_test 24a "lfs df [-ih] [path] test =========================" test_24b() { touch $DIR1/$tfile - fsnum=`lfs df | grep -c "filesystem summary:"` + fsnum=$(lfs_df | grep -c "summary") [ $fsnum -eq 2 ] || error "lfs df shows $fsnum != 2 filesystems." } run_test 24b "lfs df should show both filesystems ===============" @@ -615,8 +645,13 @@ test_31a() { run_test 31a "voluntary cancel / blocking ast race==============" test_31b() { - remote_ost || { skip "local OST" && return 0; } - remote_ost_nodsh && skip "remote OST w/o dsh" && return 0 + remote_ost || { skip "local OST" && return 0; } + remote_ost_nodsh && skip "remote OST w/o dsh" && return 0 + + # make sure there is no local locks due to destroy + wait_mds_ost_sync || error "wait_mds_ost_sync()" + wait_delete_completed || error "wait_delete_completed()" + mkdir -p $DIR1/$tdir || error "Creating dir $DIR1/$tdir" lfs setstripe $DIR/$tdir/$tfile -i 0 -c 1 cp /etc/hosts $DIR/$tdir/$tfile @@ -911,23 +946,23 @@ test_36() { #bug 16417 while [ $i -le 10 ]; do lctl mark "start test" - local before=$($LFS df | awk '{if ($1 ~/^filesystem/) \ - {print $5; exit} }') - dd if=/dev/zero of=$DIR1/$tdir/file000 bs=1M count=$SIZE - sync # sync data from client's cache - sync_all_data # sync data from server's cache (delayed - # allocation) + local before=$($LFS df | awk '{ if ($1 ~/^filesystem/) \ + { print $5; exit} }') + dd if=/dev/zero of=$DIR1/$tdir/$tfile bs=1M count=$SIZE || + error "dd $DIR1/$tdir/$tfile ${SIZE}MB failed" + sync # sync data from client cache + sync_all_data # sync data from server cache (delayed allocation) sleep 1 - local after_dd=$($LFS df | awk '{if ($1 ~/^filesystem/) \ - {print $5; exit} }') - multiop_bg_pause $DIR2/$tdir/file000 O_r${SIZE_B}c || return 3 + local after_dd=$($LFS df | awk '{ if ($1 ~/^filesystem/) \ + { print $5; exit} }') + multiop_bg_pause $DIR2/$tdir/$tfile O_r${SIZE_B}c || return 3 read_pid=$! - rm -f $DIR1/$tdir/file000 + rm -f $DIR1/$tdir/$tfile kill -USR1 $read_pid wait $read_pid - sleep 1 - local after=$($LFS df | awk '{if ($1 ~/^filesystem/) \ - {print $5; exit} }') + wait_delete_completed + local after=$($LFS df | awk '{ if ($1 ~/^filesystem/) \ + { print $5; exit} }') echo "*** cycle($i) *** before($before) after_dd($after_dd)" \ "after($after)" # this free space! not used @@ -938,7 +973,7 @@ test_36() { #bug 16417 let i=i+1 done } -run_test 36 "handle ESTALE/open-unlink corectly" +run_test 36 "handle ESTALE/open-unlink correctly" test_37() { # bug 18695 mkdir -p $DIR1/$tdir @@ -1894,6 +1929,8 @@ test_50() { run_test 50 "osc lvb attrs: enqueue vs. CP AST ==============" test_60() { + [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.3.0) ]] || + { skip "Need MDS version at least 2.3.0"; return; } # Create a file mkdir -p $DIR1/$tdir file1=$DIR1/$tdir/file @@ -1944,6 +1981,6 @@ log "cleanup: ======================================================" [ "$(mount | grep $MOUNT2)" ] && umount $MOUNT2 -complete $(basename $0) $SECONDS +complete $SECONDS check_and_cleanup_lustre exit_status