Whamcloud - gitweb
LU-12784 llite: limit max xattr size by kernel value
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 4453d11..1e7d1e1 100644 (file)
@@ -2468,11 +2468,11 @@ test_27D() {
        [ $MDS1_VERSION -lt $(version_code 2.9.55) ] ||
                [ $CLIENT_VERSION -lt $(version_code 2.9.55) ] &&
                        skip27D+=" -s 30,31"
-       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code $SEL_VER) ] &&
-               skip27D+="-s 32"
        [[ ! $($LCTL get_param mdc.*.import) =~ connect_flags.*overstriping ||
          $OSTCOUNT -ge $(($LOV_MAX_STRIPE_COUNT / 2)) ]] &&
                skip27D+=" -s 32,33"
+       [[ $MDS_VERSION -lt $(version_code $SEL_VER) ]] &&
+               skip27D+=" -s 34"
        llapi_layout_test -d$DIR/$tdir -p$POOL -o$OSTCOUNT $skip27D ||
                error "llapi_layout_test failed"
 
@@ -2612,6 +2612,8 @@ run_test 27H "Set specific OSTs stripe"
 test_27I() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
        [[ $OSTCOUNT -lt 2 ]] && skip_env "needs >= 2 OSTs"
+       [[ $MDS1_VERSION -gt $(version_code 2.12.52) ]] ||
+               skip "Need MDS version newer than 2.12.52"
        local pool=$TESTNAME
        local ostrange="1 1 1"
 
@@ -4266,7 +4268,7 @@ test_39j() {
                        error "mtime is lost on close: $mtime2, " \
                              "should be $mtime1"
 
-               cancel_lru_locks $OSC
+               cancel_lru_locks
                if [ $i = 0 ] ; then echo "repeat after cancel_lru_locks"; fi
        done
        lctl set_param fail_loc=0
@@ -4295,7 +4297,7 @@ test_39k() {
                [ "$mtime2" = $TEST_39_MTIME ] || \
                        error "mtime is lost on close: $mtime2, should be $TEST_39_MTIME"
 
-               cancel_lru_locks osc
+               cancel_lru_locks
                if [ $i = 0 ] ; then echo "repeat after cancel_lru_locks"; fi
        done
 }
@@ -5857,6 +5859,8 @@ test_56r() {
 run_test 56r "check lfs find -size works"
 
 test_56ra() {
+       [[ $MDS1_VERSION -gt $(version_code 2.12.58) ]] ||
+               skip "MDS < 2.12.58 doesn't return LSOM data"
        local dir=$DIR/$tdir
 
        [[ $OSC == "mdc" ]] && skip "DoM files" && return
@@ -7841,6 +7845,29 @@ test_65n() {
        local dir5_layout=$(get_layout_param $dir5)
        [[ "$dir4_layout" = "$dir5_layout" ]] ||
                error "$dir5 should inherit the default layout from $dir4"
+
+       # though subdir under ROOT doesn't inherit default layout, but
+       # its sub dir/file should be created with default layout.
+       [[ $MDSCOUNT -ge 2 ]] || skip_env "needs >= 2 MDTs"
+       [[ $MDS1_VERSION -ge $(version_code 2.12.59) ]] ||
+               skip "Need MDS version at least 2.12.59"
+
+       local default_lmv_count=$($LFS getdirstripe -D -c $MOUNT)
+       local default_lmv_index=$($LFS getdirstripe -D -i $MOUNT)
+       local default_lmv_hash=$($LFS getdirstripe -D -H $MOUNT)
+
+       if [ $default_lmv_hash == "none" ]; then
+               stack_trap "$LFS setdirstripe -D -d $MOUNT" EXIT
+       else
+               stack_trap "$LFS setdirstripe -D -i $default_lmv_index \
+                       -c $default_lmv_count -H $default_lmv_hash $MOUNT" EXIT
+       fi
+
+       $LFS setdirstripe -D -c 2 $MOUNT ||
+               error "setdirstripe -D -c 2 failed"
+       mkdir $MOUNT/$tdir-6 || error "mkdir $tdir-6 failed"
+       local lmv_count=$($LFS getdirstripe -c $MOUNT/$tdir-6)
+       [ $lmv_count -eq 2 ] || error "$tdir-6 stripe count $lmv_count"
 }
 run_test 65n "don't inherit default layout from root for new subdirectories"
 
@@ -8644,7 +8671,6 @@ cleanup_101a() {
 
 test_101a() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
-       [ $MDSCOUNT -ge 2 ] && skip_env "needs < 2 MDTs" #LU-4322
 
        local s
        local discard
@@ -8669,9 +8695,12 @@ test_101a() {
        done
        cleanup_101a
 
-       if [[ $(($discard * 10)) -gt $nreads ]]; then
-               $LCTL get_param osc.*-osc*.rpc_stats
-               $LCTL get_param llite.*.read_ahead_stats
+       $LCTL get_param osc.*-osc*.rpc_stats
+       $LCTL get_param llite.*.read_ahead_stats
+
+       # Discard is generally zero, but sometimes a few random reads line up
+       # and trigger larger readahead, which is wasted & leads to discards.
+       if [[ $(($discard)) -gt $nreads ]]; then
                error "too many ($discard) discarded pages"
        fi
        rm -f $DIR/$tfile || true
@@ -21351,6 +21380,50 @@ test_421g() {
 }
 run_test 421g "rmfid to return errors properly"
 
+test_422() {
+       test_mkdir -i 0 -c 1 -p $DIR/$tdir/d1
+       test_mkdir -i 0 -c 1 -p $DIR/$tdir/d2
+       test_mkdir -i 0 -c 1 -p $DIR/$tdir/d3
+       dd if=/dev/zero of=$DIR/$tdir/d1/file1 bs=1k count=1
+       dd if=/dev/zero of=$DIR/$tdir/d2/file1 bs=1k count=1
+
+       local amc=$(at_max_get client)
+       local amo=$(at_max_get mds1)
+       local timeout=`lctl get_param -n timeout`
+
+       at_max_set 0 client
+       at_max_set 0 mds1
+
+#define OBD_FAIL_PTLRPC_PAUSE_REQ        0x50a
+       do_facet mds1 $LCTL set_param fail_loc=0x8000050a \
+                       fail_val=$(((2*timeout + 10)*1000))
+       touch $DIR/$tdir/d3/file &
+       sleep 2
+#define OBD_FAIL_TGT_REPLY_DATA_RACE    0x722
+       do_facet mds1 $LCTL set_param fail_loc=0x80000722 \
+                       fail_val=$((2*timeout + 5))
+       mv $DIR/$tdir/d1/file1 $DIR/$tdir/d1/file2 &
+       local pid=$!
+       sleep 1
+       kill -9 $pid
+       sleep $((2 * timeout))
+       echo kill $pid
+       kill -9 $pid
+       lctl mark touch
+       touch $DIR/$tdir/d2/file3
+       touch $DIR/$tdir/d2/file4
+       touch $DIR/$tdir/d2/file5
+
+       wait
+       at_max_set $amc client
+       at_max_set $amo mds1
+
+       # LU-12838 - verify the ptlrpc thread watchdog is not always throttled
+       do_facet mds1 "dmesg | grep 'Dumping the stack trace for debugging'" ||
+               error "Watchdog is always throttled"
+}
+run_test 422 "kill a process with RPC in progress"
+
 prep_801() {
        [[ $(lustre_version_code mds1) -lt $(version_code 2.9.55) ]] ||
        [[ $OST1_VERSION -lt $(version_code 2.9.55) ]] &&
@@ -22075,6 +22148,8 @@ run_test 809 "Verify no SOM xattr store for DoM-only files"
 test_810() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
        $GSS && skip_env "could not run with gss"
+       [[ $OST1_VERSION -gt $(version_code 2.12.58) ]] ||
+               skip "OST < 2.12.58 doesn't align checksum"
 
        set_checksums 1
        stack_trap "set_checksums $ORIG_CSUM" EXIT