Whamcloud - gitweb
LU-10447 tests: replace $SET/$GETSTRIPE for misc tests
[fs/lustre-release.git] / lustre / tests / sanity-scrub.sh
index f7dc22f..c84ce25 100644 (file)
@@ -49,7 +49,6 @@ build_test_filter
 
 MDT_DEV="${FSNAME}-MDT0000"
 OST_DEV="${FSNAME}-OST0000"
-MDT_DEVNAME=$(mdsdevname ${SINGLEMDS//mds/})
 
 scrub_start() {
        local error_id=$1
@@ -100,7 +99,7 @@ scrub_prep() {
        echo "preparing... $(date)"
        for n in $(seq $MDSCOUNT); do
                echo "creating $nfiles files on mds$n"
-               test_mkdir -i $((n - 1)) $DIR/$tdir/mds$n ||
+               test_mkdir -i $((n - 1)) -c1 $DIR/$tdir/mds$n ||
                        error "Failed to create directory mds$n"
                cp $LUSTRE/tests/*.sh $DIR/$tdir/mds$n ||
                        error "Failed to copy files to mds$n"
@@ -375,7 +374,7 @@ test_1a() {
        stop $SINGLEMDS > /dev/null || error "(6) Fail to stop MDS!"
 
        echo "start $SINGLEMDS with disabling OI scrub"
-       start $SINGLEMDS $MDT_DEVNAME $MOUNT_OPTS_NOSCRUB > /dev/null ||
+       start $SINGLEMDS $(mdsdevname 1) $MOUNT_OPTS_NOSCRUB > /dev/null ||
                error "(7) Fail to start MDS!"
 
        local FLAGS=$($SHOW_SCRUB | awk '/^flags/ { print $2 }')
@@ -654,6 +653,28 @@ test_4c() {
 }
 run_test 4c "Auto trigger OI scrub if bad OI mapping was found (3)"
 
+test_4d() {
+       [ $(facet_fstype $SINGLEMDS) != "ldiskfs" ] && skip "ldiskfs only test"
+
+       check_mount_and_prep
+
+       #define OBD_FAIL_OSD_DUPLICATE_MAP      0x19b
+       do_nodes $(comma_list $(osts_nodes)) $LCTL set_param fail_loc=0x19b
+       for i in {1..100}; do
+               echo $i > $DIR/$tdir/f_$i || error "write f_$i failed"
+       done
+       do_nodes $(comma_list $(osts_nodes)) $LCTL set_param fail_loc=0
+
+       for i in {101..200}; do
+               echo $i > $DIR/$tdir/f_$i || error "write f_$i failed"
+       done
+
+       for i in {1..200}; do
+               echo $i | cmp $DIR/$tdir/f_$i - || error "f_$i data corrupt"
+       done
+}
+run_test 4d "FID in LMA mismatch with object FID won't block create"
+
 test_5() {
        formatall > /dev/null
        setupall > /dev/null
@@ -1025,7 +1046,7 @@ test_11() {
        check_mount_and_prep
 
        for n in $(seq $MDSCOUNT); do
-               test_mkdir -i $((n - 1)) $DIR/$tdir/mds$n ||
+               test_mkdir -i $((n - 1)) -c1 $DIR/$tdir/mds$n ||
                        error "(1) Fail to mkdir $DIR/$tdir/mds$n"
 
                createmany -o $DIR/$tdir/mds$n/f $CREATED ||
@@ -1071,7 +1092,7 @@ run_test 11 "OI scrub skips the new created objects only once"
 
 test_12() {
        check_mount_and_prep
-       $SETSTRIPE -c 1 -i 0 $DIR/$tdir
+       $LFS setstripe -c 1 -i 0 $DIR/$tdir
 
        #define OBD_FAIL_OSD_COMPAT_INVALID_ENTRY               0x195
        do_facet ost1 $LCTL set_param fail_loc=0x195
@@ -1109,7 +1130,7 @@ run_test 12 "OI scrub can rebuild invalid /O entries"
 
 test_13() {
        check_mount_and_prep
-       $SETSTRIPE -c 1 -i 0 $DIR/$tdir
+       $LFS setstripe -c 1 -i 0 $DIR/$tdir
 
        #define OBD_FAIL_OSD_COMPAT_NO_ENTRY            0x196
        do_facet ost1 $LCTL set_param fail_loc=0x196
@@ -1142,10 +1163,10 @@ run_test 13 "OI scrub can rebuild missed /O entries"
 
 test_14() {
        [ $(facet_fstype $SINGLEMDS) != "ldiskfs" ] &&
-               skip "ldiskfs special test" && return
+               skip "ldiskfs special test"
 
        check_mount_and_prep
-       $SETSTRIPE -c 1 -i 0 $DIR/$tdir
+       $LFS setstripe -c 1 -i 0 $DIR/$tdir
 
        #define OBD_FAIL_OSD_COMPAT_NO_ENTRY            0x196
        do_facet ost1 $LCTL set_param fail_loc=0x196
@@ -1168,13 +1189,19 @@ test_14() {
        mount_client $MOUNT || error "(5) Fail to start client!"
 
        local LF_REPAIRED=$($SHOW_SCRUB_ON_OST |
-                           awk '/^lf_repa[ri]*ed/ { print $2 }')
+                           awk '/^lf_repa[ir]*ed/ { print $2 }')
        [ $LF_REPAIRED -ge 1000 ] ||
                error "(6) Some entry under /lost+found should be repaired"
 
        ls -ail $DIR/$tdir > /dev/null || error "(7) ls should succeed"
+
+       stopall
+
+       echo "run e2fsck again after LFSCK"
+       run_e2fsck $(facet_host ost1) $(ostdevname 1) "-y" ||
+               error "(8) Fail to run e2fsck error"
 }
-run_test 14 "OI scrub can repair objects under lost+found"
+run_test 14 "OI scrub can repair OST objects under lost+found"
 
 test_15() {
        local repaired