ALWAYS_EXCEPT="$ALWAYS_EXCEPT 17n 60a 133g 300f"
fi
+if [[ $(uname -m) = aarch64 ]]; then
+ # bug number: LU-11596 (all below)
+ ALWAYS_EXCEPT+=" 42d 42e 63a 63b 64a 64b 64c"
+ # bug number: LU-11671 LU-11665 LU-11594 LU-11667 LU-11729
+ ALWAYS_EXCEPT+=" 45 101c 103a 317 810"
+fi
+
# Check Grants after these tests
GRANT_CHECK_LIST="$GRANT_CHECK_LIST 42a 42b 42c 42d 42e 63a 63b 64a 64b 64c"
SRCDIR=$(cd $(dirname $0); echo $PWD)
}
run_test 230j "DoM file data not changed after dir migration"
+test_230k() {
+ [ $MDSCOUNT -lt 4 ] && skip "needs >= 4 MDTs"
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+ skip "Need MDS version at least 2.11.56"
+
+ local total=20
+ local files_on_starting_mdt=0
+
+ $LFS mkdir -i -1 -c 2 $DIR/$tdir || error "mkdir failed"
+ $LFS getdirstripe $DIR/$tdir
+ for i in $(seq $total); do
+ echo $((i*i - i)) > $DIR/$tdir/$tfile.$i || error "write failed"
+ [[ $($LFS getstripe -m $DIR/$tdir/$tfile.$i) -eq 0 ]] &&
+ files_on_starting_mdt=$((files_on_starting_mdt + 1))
+ done
+
+ echo "$files_on_starting_mdt files on MDT0"
+
+ $LFS migrate -m 1,3 $DIR/$tdir || error "migrate -m 1,3 failed"
+ $LFS getdirstripe $DIR/$tdir
+
+ files_on_starting_mdt=0
+ for i in $(seq $total); do
+ $(echo $((i*i - i)) | cmp $DIR/$tdir/$tfile.$i -) ||
+ error "file $tfile.$i mismatch after migration"
+ [[ $($LFS getstripe -m $DIR/$tdir/$tfile.$i) -eq 1 ]] &&
+ files_on_starting_mdt=$((files_on_starting_mdt + 1))
+ done
+
+ echo "$files_on_starting_mdt files on MDT1 after migration"
+ [[ $files_on_starting_mdt -eq $total ]] && error "all files on MDT1"
+
+ $LFS migrate -m 0 -c 2 $DIR/$tdir || error "migrate -m 0 -c 2 failed"
+ $LFS getdirstripe $DIR/$tdir
+
+ files_on_starting_mdt=0
+ for i in $(seq $total); do
+ $(echo $((i*i - i)) | cmp $DIR/$tdir/$tfile.$i -) ||
+ error "file $tfile.$i mismatch after 2nd migration"
+ [[ $($LFS getstripe -m $DIR/$tdir/$tfile.$i) -eq 0 ]] &&
+ files_on_starting_mdt=$((files_on_starting_mdt + 1))
+ done
+
+ echo "$files_on_starting_mdt files on MDT0 after 2nd migration"
+ [[ $files_on_starting_mdt -eq $total ]] && error "all files on MDT0"
+
+ true
+}
+run_test 230k "file data not changed after dir migration"
+
+test_230l() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs"
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+ skip "Need MDS version at least 2.11.56"
+
+ $LFS mkdir -i 0 -c 1 $DIR/$tdir || error "mkdir failed"
+ createmany -o $DIR/$tdir/f___________________________________ 1000 ||
+ error "create files under remote dir failed $i"
+ $LFS migrate -m 1 $DIR/$tdir || error "migrate failed"
+}
+run_test 230l "readdir between MDTs won't crash"
+
test_231a()
{
# For simplicity this test assumes that max_pages_per_rpc
}
run_test 415 "lock revoke is not missing"
-
test_416() {
[ $(lustre_version_code mds1) -lt $(version_code 2.11.55) ] &&
skip "Need server version at least 2.11.55"
}
run_test 416 "transaction start failure won't cause system hung"
+cleanup_417() {
+ trap 0
+ do_nodes $(comma_list $(mdts_nodes)) \
+ "$LCTL set_param -n mdt.*MDT*.enable_dir_migration=1"
+ do_nodes $(comma_list $(mdts_nodes)) \
+ "$LCTL set_param -n mdt.*MDT*.enable_remote_dir=1"
+ do_nodes $(comma_list $(mdts_nodes)) \
+ "$LCTL set_param -n mdt.*MDT*.enable_striped_dir=1"
+}
+
+test_417() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ]] &&
+ skip "Need MDS version at least 2.11.56" && return
+
+ trap cleanup_417 RETURN EXIT
+
+ $LFS mkdir -i 1 $DIR/$tdir.1 || error "create remote dir $tdir.1 failed"
+ do_nodes $(comma_list $(mdts_nodes)) \
+ "$LCTL set_param -n mdt.*MDT*.enable_dir_migration=0"
+ $LFS migrate -m 0 $DIR/$tdir.1 &&
+ error "migrate dir $tdir.1 should fail"
+
+ do_nodes $(comma_list $(mdts_nodes)) \
+ "$LCTL set_param -n mdt.*MDT*.enable_remote_dir=0"
+ $LFS mkdir -i 1 $DIR/$tdir.2 &&
+ error "create remote dir $tdir.2 should fail"
+
+ do_nodes $(comma_list $(mdts_nodes)) \
+ "$LCTL set_param -n mdt.*MDT*.enable_striped_dir=0"
+ $LFS mkdir -c 2 $DIR/$tdir.3 &&
+ error "create striped dir $tdir.3 should fail"
+ true
+}
+run_test 417 "disable remote dir, striped dir and dir migration"
+
prep_801() {
[[ $(lustre_version_code mds1) -lt $(version_code 2.9.55) ]] ||
[[ $(lustre_version_code ost1) -lt $(version_code 2.9.55) ]] &&
done
sync; sleep 3
+ wait_delete_completed # ensure old test cleanups are finished
echo "before create:"
$LFS df -i $MOUNT
local before_used=$($LFS df -i | grep MDT0000_UUID | awk '{print $3}')
- for ((i=0; i<10; i++)); do
+ for i in {1..10}; do
$LFS mkdir -c 1 -i 1 $DIR/$tdir/foo$i ||
error "Fail to create $DIR/$tdir/foo$i"
done
$LFS df -i $MOUNT
local after_used=$($LFS df -i | grep MDT0000_UUID | awk '{print $3}')
- [ $after_used -ge $((before_used + 10)) ] ||
+ # allow for an llog to be cleaned up during the test
+ [ $after_used -ge $((before_used + 10 - 1)) ] ||
error "before ($before_used) + 10 > after ($after_used)"
- for ((i=0; i<10; i++)); do
+ for i in {1..10}; do
rm -rf $DIR/$tdir/foo$i ||
error "Fail to remove $DIR/$tdir/foo$i"
done
wait_delete_completed
echo "after unlink:"
$LFS df -i $MOUNT
- before_used=$after_used
after_used=$($LFS df -i | grep MDT0000_UUID | awk '{print $3}')
- [ $after_used -le $((before_used - 8)) ] ||
- error "before ($before_used) - 8 < after ($after_used)"
+ # allow for an llog to be created during the test
+ [ $after_used -le $((before_used + 1)) ] ||
+ error "after ($after_used) > before ($before_used) + 1"
}
run_test 803 "verify agent object for remote object"
}
run_test 808 "Check trusted.som xattr not logged in Changelogs"
+check_som_nodata()
+{
+ $LFS getsom $1
+ [[ $? -eq 61 ]] || error "DoM-only file $1 has SOM xattr"
+}
+
+test_809() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.11.56) ] &&
+ skip "Need MDS version at least 2.11.56" && return
+
+ $LFS setstripe -E 1M -L mdt $DIR/$tfile ||
+ error "failed to create DoM-only file $DIR/$tfile"
+ touch $DIR/$tfile || error "touch $tfile failed"
+ check_som_nodata $DIR/$tfile
+
+ dd if=/dev/zero of=$DIR/$tfile bs=2048 count=1 ||
+ error "write $tfile failed"
+ check_som_nodata $DIR/$tfile
+
+ $TRUNCATE $DIR/$tfile 1234
+ check_som_nodata $DIR/$tfile
+
+ $TRUNCATE $DIR/$tfile 4097
+ check_som_nodata $DIR/$file
+}
+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
+}
+run_test 810 "partial page writes on ZFS (LU-11663)"
+
#
# tests that do cleanup/setup should be run at the end
#