Whamcloud - gitweb
LU-7422 mdt: fix ENOENT handling in mdt_intent_reint
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 3b77e07..55d8ebc 100755 (executable)
@@ -111,11 +111,6 @@ assert_DIR
 
 MDT0=$($LCTL get_param -n mdc.*.mds_server_uuid |
        awk '{ gsub(/_UUID/,""); print $1 }' | head -n1)
-LOVNAME=$($LCTL get_param -n llite.*.lov.common_name | tail -n 1)
-OSTCOUNT=$($LCTL get_param -n lov.$LOVNAME.numobd)
-STRIPECOUNT=$($LCTL get_param -n lov.$LOVNAME.stripecount)
-STRIPESIZE=$($LCTL get_param -n lov.$LOVNAME.stripesize)
-ORIGFREE=$($LCTL get_param -n lov.$LOVNAME.kbytesavail)
 MAXFREE=${MAXFREE:-$((200000 * $OSTCOUNT))}
 
 [ -f $DIR/d52a/foo ] && chattr -a $DIR/d52a/foo
@@ -1431,6 +1426,9 @@ run_test 27l "check setstripe permissions (should return error)"
 test_27m() {
        [[ $OSTCOUNT -lt 2 ]] && skip_env "$OSTCOUNT < 2 OSTs -- skipping" &&
                return
+
+       ORIGFREE=$($LCTL get_param -n lov.$FSNAME-clilov-*.kbytesavail |
+                  head -n1)
        if [[ $ORIGFREE -gt $MAXFREE ]]; then
                skip "$ORIGFREE > $MAXFREE skipping out-of-space test on OST0"
                return
@@ -4848,7 +4846,9 @@ test_56w() {
     local file_size=$((stripe_size * OSTCOUNT))
     local file_num=$((NUMDIRS * NUMFILES + NUMFILES))
     local required_space=$((file_num * file_size))
-    local free_space=$($LCTL get_param -n lov.$LOVNAME.kbytesavail)
+
+    local free_space=$($LCTL get_param -n lov.$FSNAME-clilov-*.kbytesavail |
+                       head -n1)
     [[ $free_space -le $((required_space / 1024)) ]] &&
         skip_env "need at least $required_space bytes free space," \
                  "have $free_space kbytes" && return
@@ -5371,28 +5371,35 @@ run_test 65a "directory with no stripe info ===================="
 test_65b() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
        test_mkdir -p $DIR/$tdir
+       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+
        $SETSTRIPE -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
                                                error "setstripe"
        touch $DIR/$tdir/f2
        $LVERIFY $DIR/$tdir $DIR/$tdir/f2 || error "lverify failed"
 }
-run_test 65b "directory setstripe -S $((STRIPESIZE * 2)) -i 0 -c 1"
+run_test 65b "directory setstripe -S stripe_size*2 -i 0 -c 1"
 
 test_65c() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
        if [[ $OSTCOUNT -gt 1 ]]; then
                test_mkdir -p $DIR/$tdir
+               local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+
                $SETSTRIPE -S $(($STRIPESIZE * 4)) -i 1 \
                        -c $(($OSTCOUNT - 1)) $DIR/$tdir || error "setstripe"
                touch $DIR/$tdir/f3
                $LVERIFY $DIR/$tdir $DIR/$tdir/f3 || error "lverify failed"
        fi
 }
-run_test 65c "directory setstripe -S $((STRIPESIZE*4)) -i 1 -c $((OSTCOUNT-1))"
+run_test 65c "directory setstripe -S stripe_size*4 -i 1 -c $((OSTCOUNT-1))"
 
 test_65d() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
        test_mkdir -p $DIR/$tdir
+       local STRIPECOUNT=$($GETSTRIPE -c $DIR/$tdir)
+       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+
        if [[ $STRIPECOUNT -le 0 ]]; then
                sc=1
        elif [[ $STRIPECOUNT -gt 2000 ]]; then
@@ -5406,7 +5413,7 @@ test_65d() {
        $LVERIFY $DIR/$tdir $DIR/$tdir/f4 $DIR/$tdir/f5 ||
                error "lverify failed"
 }
-run_test 65d "directory setstripe -S $STRIPESIZE -c stripe_count"
+run_test 65d "directory setstripe -S stripe_size -c stripe_count"
 
 test_65e() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
@@ -5430,6 +5437,8 @@ run_test 65f "dir setstripe permission (should return error) ==="
 test_65g() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
         test_mkdir -p $DIR/$tdir
+       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+
         $SETSTRIPE -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
                                                        error "setstripe"
         $SETSTRIPE -d $DIR/$tdir || error "setstripe"
@@ -5441,6 +5450,8 @@ run_test 65g "directory setstripe -d ==========================="
 test_65h() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
         test_mkdir -p $DIR/$tdir
+       local STRIPESIZE=$($GETSTRIPE -S $DIR/$tdir)
+
         $SETSTRIPE -S $((STRIPESIZE * 2)) -i 0 -c 1 $DIR/$tdir ||
                                                        error "setstripe"
         test_mkdir -p $DIR/$tdir/dd1
@@ -13079,6 +13090,33 @@ test_230g() {
 }
 run_test 230g "migrate dir to non-exist MDT"
 
+test_230h() {
+       [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
+       [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+       [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.7.64) ] &&
+               skip "Need MDS version at least 2.7.64" && return
+       local mdt_index
+
+       mkdir -p $DIR/$tdir/migrate_dir
+
+       $LFS migrate -m1 $DIR &&
+               error "migrating mountpoint1 should fail"
+
+       $LFS migrate -m1 $DIR/$tdir/.. &&
+               error "migrating mountpoint2 should fail"
+
+       $LFS migrate -m1 $DIR/$tdir/migrate_dir/.. ||
+               error "migrating $tdir fail"
+
+       mdt_index=$($LFS getstripe -M $DIR/$tdir)
+       [ $mdt_index == 1 ] || error "$mdt_index != 1 after migration"
+
+       mdt_index=$($LFS getstripe -M $DIR/$tdir/migrate_dir)
+       [ $mdt_index == 1 ] || error "$mdt_index != 1 after migration"
+
+}
+run_test 230h "migrate .. and root"
+
 test_231a()
 {
        # For simplicity this test assumes that max_pages_per_rpc
@@ -13090,16 +13128,20 @@ test_231a()
 
        # clear the OSC stats
        $LCTL set_param osc.*.stats=0 &>/dev/null
+       stop_writeback
 
        # Client writes $bulk_size - there must be 1 rpc for $max_pages.
        dd if=/dev/zero of=$DIR/$tdir/$tfile bs=$bulk_size count=1 \
                oflag=direct &>/dev/null || error "dd failed"
 
+       sync; sleep 1; sync # just to be safe
        local nrpcs=$($LCTL get_param osc.*.stats |awk '/ost_write/ {print $2}')
        if [ x$nrpcs != "x1" ]; then
-               error "found $nrpc ost_write RPCs, not 1 as expected"
+               $LCTL get_param osc.*.stats
+               error "found $nrpcs ost_write RPCs, not 1 as expected"
        fi
 
+       start_writeback
        # Drop the OSC cache, otherwise we will read from it
        cancel_lru_locks osc
 
@@ -13112,7 +13154,8 @@ test_231a()
 
        nrpcs=$($LCTL get_param osc.*.stats | awk '/ost_read/ { print $2 }')
        if [ x$nrpcs != "x1" ]; then
-               error "found $nrpc ost_read RPCs, not 1 as expected"
+               $LCTL get_param osc.*.stats
+               error "found $nrpcs ost_read RPCs, not 1 as expected"
        fi
 }
 run_test 231a "checking that reading/writing of BRW RPC size results in one RPC"
@@ -14283,6 +14326,15 @@ test_401() { #LU-7437
 }
 run_test 401 "Verify if 'lctl list_param -R' can list parameters recursively"
 
+test_402() {
+       $LFS setdirstripe -i 0 $DIR/$tdir || error "setdirstripe -i 0 failed"
+#define OBD_FAIL_MDS_FLD_LOOKUP 0x15c
+       do_facet mds1 "lctl set_param fail_loc=0x8000015c"
+       touch $DIR/$tdir/$tfile && error "touch should fail with ENOENT" ||
+               echo "Touch failed - OK"
+}
+run_test 402 "Return ENOENT to lod_generate_and_set_lovea"
+
 #
 # tests that do cleanup/setup should be run at the end
 #