Whamcloud - gitweb
LU-1028 tests: regrab some grant after oos test
[fs/lustre-release.git] / lustre / tests / sanityn.sh
index 26ee314..d1ad569 100644 (file)
@@ -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 [ "$OSTFSTYPE" = "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 ==============="
 
@@ -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
@@ -925,7 +960,7 @@ test_36() { #bug 16417
                rm -f $DIR1/$tdir/file000
                kill -USR1 $read_pid
                wait $read_pid
-               sleep 1
+               wait_delete_completed
                local after=$($LFS df | awk '{if ($1 ~/^filesystem/) \
                                              {print $5; exit} }')
                echo "*** cycle($i) *** before($before) after_dd($after_dd)" \
@@ -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