Whamcloud - gitweb
LU-1957 tests: remove sanity test 180 from ALWAYS_EXCEPT
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 68ca2fc..cff47e9 100644 (file)
@@ -61,8 +61,8 @@ fi
 [ "$SLOW" = "no" ] && EXCEPT_SLOW="27m 64b 68 71 115 300o"
 
 if [ "$mds1_FSTYPE" = "zfs" ]; then
-       # bug number for skipped test: LU-1957
-       ALWAYS_EXCEPT="$ALWAYS_EXCEPT  180"
+       # bug number for skipped test:
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT  "
        #                                               13    (min)"
        [ "$SLOW" = "no" ] && EXCEPT_SLOW="$EXCEPT_SLOW 51b"
 fi
@@ -6807,9 +6807,9 @@ test_60a() {
        local pass=true
 
        #get fid and record list
-       fid_list=($(awk '/9_sub.*record/ { print $NF }' /$TMP/$tfile |
+       fid_list=($(awk '/9_sub.*record/ { print $NF }' $TMP/$tfile |
                tail -n 4))
-       rec_list=($(awk '/9_sub.*record/ { print $((NF-3)) }' /$TMP/$tfile |
+       rec_list=($(awk '/9_sub.*record/ { print $((NF-3)) }' $TMP/$tfile |
                tail -n 4))
        #remount mgs as ldiskfs or zfs type
        stop mgs || error "stop mgs failed"
@@ -13771,6 +13771,49 @@ test_160i() {
 }
 run_test 160i "changelog user register/unregister race"
 
+test_160j() {
+       remote_mds_nodsh && skip "remote MDS with nodsh"
+       [[ $MDS1_VERSION -lt $(version_code 2.12.56) ]] &&
+               skip "Need MDS version at least 2.12.56"
+
+       mount_client $MOUNT2 || error "mount_client on $MOUNT2 failed"
+
+       changelog_register || error "first changelog_register failed"
+
+       # generate some changelog
+       test_mkdir -c $MDSCOUNT $DIR/$tdir || error "mkdir $tdir failed"
+       createmany -m $DIR/$tdir/${tfile}bis $((MDSCOUNT * 2)) ||
+               error "create $DIR/$tdir/${tfile}bis failed"
+
+       # open the changelog device
+       exec 3>/dev/changelog-$FSNAME-MDT0000
+       exec 4</dev/changelog-$FSNAME-MDT0000
+
+       # umount the first lustre mount
+       umount $MOUNT
+
+       # read changelog
+       cat <&4 >/dev/null || error "read changelog failed"
+
+       # clear changelog
+       local cl_user="${CL_USERS[$SINGLEMDS]%% *}"
+       changelog_users $SINGLEMDS | grep -q $cl_user ||
+               error "User $cl_user not found in changelog_users"
+
+       printf 'clear:'$cl_user':0' >&3
+
+       # close
+       exec 3>&-
+       exec 4<&-
+
+       # cleanup
+       changelog_deregister || error "changelog_deregister failed"
+
+       umount $MOUNT2
+       mount_client $MOUNT || error "mount_client on $MOUNT failed"
+}
+run_test 160j "client can be umounted  while its chanangelog is being used"
+
 test_161a() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run"
 
@@ -18277,8 +18320,8 @@ test_271f() {
        local mdtidx=$($LFS getstripe --mdt-index $DIR/$tdir)
 
        cancel_lru_locks mdc
-       dd if=/dev/urandom of=$tmp bs=200000 count=1
-       dd if=$tmp of=$dom bs=200000 count=1
+       dd if=/dev/urandom of=$tmp bs=265000 count=1
+       dd if=$tmp of=$dom bs=265000 count=1
        cancel_lru_locks mdc
        cat /etc/hosts >> $tmp
        lctl set_param -n mdc.*.stats=clear
@@ -18305,6 +18348,7 @@ test_271f() {
        local ra=$(get_mdc_stats $mdtidx req_active)
        local rw=$(get_mdc_stats $mdtidx req_waittime)
 
+       [ -z $num ] && num=0
        [ $num -eq 1 ] || error "expect 1 READ RPC, $num occured"
        [ $ra == $rw ] || error "$((ra - rw)) resend occured"
        echo "... DONE"
@@ -18384,12 +18428,12 @@ test_272b() {
 
        $LFS migrate -c2 $dom ||
                error "failed to migrate to the new composite layout"
-       [ $($LFS getstripe -L $dom) == 'mdt' ] &&
+       [ $($LFS getstripe -L $dom) != 'mdt' ] ||
                error "MDT stripe was not removed"
 
        cancel_lru_locks mdc
        local new_md5=$(md5sum $dom)
-       [ "$old_md5" != "$new_md5" ] &&
+       [ "$old_md5" == "$new_md5" ] ||
                error "$old_md5 != $new_md5"
 
        # Skip free space checks with ZFS
@@ -18429,7 +18473,7 @@ test_272c() {
 
        cancel_lru_locks mdc
        local new_md5=$(md5sum $dom)
-       [ "$old_md5" != "$new_md5" ] &&
+       [ "$old_md5" == "$new_md5" ] ||
                error "$old_md5 != $new_md5"
 
        # Skip free space checks with ZFS
@@ -18443,6 +18487,108 @@ test_272c() {
 }
 run_test 272c "DoM migration: DOM file to the OST-striped file (composite)"
 
+test_272d() {
+       [ $MDS1_VERSION -lt $(version_code 2.12.55) ] &&
+               skip "Need MDS version at least 2.12.55"
+
+       local dom=$DIR/$tdir/$tfile
+       mkdir -p $DIR/$tdir
+       $LFS setstripe -E 1M -L mdt -E -1 -c1 $dom
+
+       local mdtidx=$($LFS getstripe -m $dom)
+       local mdtname=MDT$(printf %04x $mdtidx)
+       local facet=mds$((mdtidx + 1))
+
+       dd if=/dev/urandom of=$dom bs=2M count=1 oflag=direct ||
+               error "failed to write data into $dom"
+       local old_md5=$(md5sum $dom)
+       cancel_lru_locks mdc
+       local mdtfree1=$(do_facet $facet \
+               lctl get_param -n osd*.*$mdtname.kbytesfree)
+
+       $LFS mirror extend -N -E 2M -c1 -E -1 -c2 $dom ||
+               error "failed mirroring to the new composite layout"
+       $LFS mirror resync $dom ||
+               error "failed mirror resync"
+       $LFS mirror split --mirror-id 1 -d $dom ||
+               error "failed mirror split"
+
+       [ $($LFS getstripe -L $dom) != 'mdt' ] ||
+               error "MDT stripe was not removed"
+
+       cancel_lru_locks mdc
+       local new_md5=$(md5sum $dom)
+       [ "$old_md5" == "$new_md5" ] ||
+               error "$old_md5 != $new_md5"
+
+       # Skip free space checks with ZFS
+       if [ "$(facet_fstype $facet)" != "zfs" ]; then
+               local mdtfree2=$(do_facet $facet \
+                               lctl get_param -n osd*.*$mdtname.kbytesfree)
+               [ $mdtfree2 -gt $mdtfree1 ] ||
+                       error "MDS space is not freed after DOM mirror deletion"
+       fi
+       return 0
+}
+run_test 272d "DoM mirroring: OST-striped mirror to DOM file"
+
+test_272e() {
+       [ $MDS1_VERSION -lt $(version_code 2.12.55) ] &&
+               skip "Need MDS version at least 2.12.55"
+
+       local dom=$DIR/$tdir/$tfile
+       mkdir -p $DIR/$tdir
+       $LFS setstripe -c 2 $dom
+
+       dd if=/dev/urandom of=$dom bs=512K count=1 oflag=direct ||
+               error "failed to write data into $dom"
+       local old_md5=$(md5sum $dom)
+       cancel_lru_locks mdc
+
+       $LFS mirror extend -N -E 1M -L mdt -E eof -c2 $dom ||
+               error "failed mirroring to the DOM layout"
+       $LFS mirror resync $dom ||
+               error "failed mirror resync"
+       $LFS mirror split --mirror-id 1 -d $dom ||
+               error "failed mirror split"
+
+       [ $($LFS getstripe -L $dom) != 'mdt' ] ||
+               error "MDT stripe was not removed"
+
+       cancel_lru_locks mdc
+       local new_md5=$(md5sum $dom)
+       [ "$old_md5" == "$new_md5" ] ||
+               error "$old_md5 != $new_md5"
+
+       return 0
+}
+run_test 272e "DoM mirroring: DOM mirror to the OST-striped file"
+
+test_272f() {
+       [ $MDS1_VERSION -lt $(version_code 2.12.55) ] &&
+               skip "Need MDS version at least 2.12.55"
+
+       local dom=$DIR/$tdir/$tfile
+       mkdir -p $DIR/$tdir
+       $LFS setstripe -c 2 $dom
+
+       dd if=/dev/urandom of=$dom bs=512K count=1 oflag=direct ||
+               error "failed to write data into $dom"
+       local old_md5=$(md5sum $dom)
+       cancel_lru_locks mdc
+
+       $LFS migrate -E 1M -L mdt -E eof -c2 -v $dom ||
+               error "failed migrating to the DOM file"
+
+       cancel_lru_locks mdc
+       local new_md5=$(md5sum $dom)
+       [ "$old_md5" != "$new_md5" ] &&
+               error "$old_md5 != $new_md5"
+
+       return 0
+}
+run_test 272f "DoM migration: OST-striped file to DOM file"
+
 test_273a() {
        [ $MDS1_VERSION -lt $(version_code 2.11.50) ] &&
                skip "Need MDS version at least 2.11.50"