Whamcloud - gitweb
LU-11729 obdclass: align to T10 sector size when generating guard
[fs/lustre-release.git] / lustre / tests / sanity.sh
index b1aad87..9877521 100644 (file)
@@ -53,16 +53,16 @@ fi
 if [[ $(uname -m) = aarch64 ]]; then
        # bug number:    LU-11596
        ALWAYS_EXCEPT+=" $GRANT_CHECK_LIST"
-       # bug number:    LU-11671 LU-11667 LU-11729 LU-4398
-       ALWAYS_EXCEPT+=" 45       317      810       817"
+       # bug number:    LU-11671 LU-11667 LU-4398
+       ALWAYS_EXCEPT+=" 45       317      817"
 fi
 
 #                                  5          12          (min)"
 [ "$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
@@ -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"
 
@@ -21703,20 +21746,29 @@ test_809() {
 run_test 809 "Verify no SOM xattr store for DoM-only files"
 
 test_810() {
-       local ORIG
-       local CSUM
-
-       # t10 seem to dislike partial pages
-       lctl set_param osc.*.checksum_type=adler
-       lctl set_param fail_loc=0x411
-       dd if=/dev/urandom of=$DIR/$tfile bs=10240 count=2
-       ORIG=$(md5sum $DIR/$tfile)
-       lctl set_param ldlm.namespaces.*osc*.lru_size=clear
-       CSUM=$(md5sum $DIR/$tfile)
-       set_checksum_type adler
-       if [ "$ORIG" != "$CSUM" ]; then
-               error "$ORIG != $CSUM"
-       fi
+       [ $PARALLEL == "yes" ] && skip "skip parallel run"
+       $GSS && skip_env "could not run with gss"
+
+       set_checksums 1
+       stack_trap "set_checksums $ORIG_CSUM" EXIT
+       stack_trap "set_checksum_type $ORIG_CSUM_TYPE" EXIT
+
+       local csum
+       local before
+       local after
+       for csum in $CKSUM_TYPES; do
+               #define OBD_FAIL_OSC_NO_GRANT   0x411
+               $LCTL set_param osc.*.checksum_type=$csum fail_loc=0x411
+               for i in "10240 0" "10000 0" "4000 1" "500 1"; do
+                       eval set -- $i
+                       dd if=/dev/urandom of=$DIR/$tfile bs=$1 count=2 seek=$2
+                       before=$(md5sum $DIR/$tfile)
+                       $LCTL set_param ldlm.namespaces.*osc*.lru_size=clear
+                       after=$(md5sum $DIR/$tfile)
+                       [ "$before" == "$after" ] ||
+                               error "$csum: $before != $after bs=$1 seek=$2"
+               done
+       done
 }
 run_test 810 "partial page writes on ZFS (LU-11663)"