Whamcloud - gitweb
Revert "LU-2469 tests: use MDS/OSTDEV and MDS/OSTDEVBASE with zfs"
[fs/lustre-release.git] / lustre / tests / sanityn.sh
index f015397..294b496 100644 (file)
@@ -322,17 +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 $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
@@ -366,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 ==============="
 
@@ -468,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 ==============="
@@ -614,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
@@ -910,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
@@ -937,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
@@ -1893,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
@@ -1943,6 +1981,6 @@ log "cleanup: ======================================================"
 
 [ "$(mount | grep $MOUNT2)" ] && umount $MOUNT2
 
-complete $(basename $0) $SECONDS
+complete $SECONDS
 check_and_cleanup_lustre
 exit_status