# bug number: LU-8411 LU-9054
ALWAYS_EXCEPT+=" 407 312"
-if $SHARED_KEY; then
- # bug number: LU-9795 LU-9795 LU-9795 LU-9795
- ALWAYS_EXCEPT+=" 17n 60a 133g 300f"
-fi
-
selinux_status=$(getenforce)
if [ "$selinux_status" != "Disabled" ]; then
# bug number:
ALWAYS_EXCEPT+=" $GRANT_CHECK_LIST"
# bug number: LU-11671 LU-11667
ALWAYS_EXCEPT+=" 45 317"
+ # bug number: LU-14067 LU-14067
+ ALWAYS_EXCEPT+=" 400a 400b"
fi
+# skip splice tests on kernels >= 4.15.0 until they are fixed
+if [ $LINUX_VERSION_CODE -ge $(version_code 4.15.0) ]; then
+ # bug number: LU-14045
+ ALWAYS_EXCEPT+=" 426"
+fi
# skip nfs tests on kernels >= 4.12.0 until they are fixed
if [ $LINUX_VERSION_CODE -ge $(version_code 4.12.0) ]; then
# bug number: LU-12661
}
run_test 24F "hash order vs readdir (LU-11330)"
+test_24G () {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs"
+
+ local ino1
+ local ino2
+
+ $LFS mkdir -i 0 $DIR/$tdir-0 || error "mkdir $tdir-0"
+ $LFS mkdir -i 1 $DIR/$tdir-1 || error "mkdir $tdir-1"
+ touch $DIR/$tdir-0/f1 || error "touch f1"
+ ln -s $DIR/$tdir-0/f1 $DIR/$tdir-0/s1 || error "ln s1"
+ ino1=$(stat -c%i $DIR/$tdir-0/s1)
+ mv $DIR/$tdir-0/s1 $DIR/$tdir-1 || error "mv s1"
+ ino2=$(stat -c%i $DIR/$tdir-1/s1)
+ [ $ino1 -ne $ino2 ] || error "s1 should be migrated"
+}
+run_test 24G "migrate symlink in rename"
+
test_25a() {
echo '== symlink sanity ============================================='
awk '/lustre_inode_cache/ { print $2; exit }' /proc/slabinfo
}
-test_76() { # Now for b=20433, added originally in b=1443
+test_76a() { # Now for b=20433, added originally in b=1443
[ $PARALLEL == "yes" ] && skip "skip parallel run"
cancel_lru_locks osc
fi
done
}
-run_test 76 "confirm clients recycle inodes properly ===="
+run_test 76a "confirm clients recycle inodes properly ===="
+
+test_76b() {
+ [ $PARALLEL == "yes" ] && skip "skip parallel run"
+ [ $CLIENT_VERSION -ge $(version_code 2.13.55) ] || skip "not supported"
+
+ local count=512
+ local before=$(num_objects)
+
+ for i in $(seq $count); do
+ mkdir $DIR/$tdir
+ rmdir $DIR/$tdir
+ done
+ local after=$(num_objects)
+ local wait=0
+
+ while (( after > before )); do
+ sleep 1
+ after=$(num_objects)
+ wait=$((wait + 1))
+ (( wait % 5 == 0 )) && echo "wait $wait seconds objects: $after"
+ if (( wait > 60 )); then
+ error "inode slab grew from $before to $after"
+ fi
+ done
+
+ echo "slab objects before: $before, after: $after"
+}
+run_test 76b "confirm clients recycle directory inodes properly ===="
export ORIG_CSUM=""
set_checksums()
}
run_test 150d "Verify fallocate Size and Blocks - Non zero start"
+test_150e() {
+ [ "$ost1_FSTYPE" != ldiskfs ] && skip "non-ldiskfs backend"
+ [ $OST1_VERSION -ge $(version_code 2.13.55) ] ||
+ skip "Need OST version at least 2.13.55"
+
+ echo "df before:"
+ $LFS df
+ $LFS setstripe -c${OSTCOUNT} $DIR/$tfile ||
+ error "$LFS setstripe -c${OSTCOUNT} $DIR/$tfile failed"
+
+ # Find OST with Minimum Size
+ min_size_ost=$($LFS df | awk "/$FSNAME-OST/ { print \$4 }" |
+ sort -un | head -1)
+
+ # Get 90% of the available space
+ local space=$(((min_size_ost * 90)/100 * OSTCOUNT))
+
+ fallocate -l${space}k $DIR/$tfile ||
+ error "fallocate ${space}k $DIR/$tfile failed"
+ echo "'fallocate -l ${space}k $DIR/$tfile' succeeded"
+
+ # get size immediately after fallocate. This should be correctly
+ # updated
+ local size=$(stat -c '%s' $DIR/$tfile)
+ local used=$(( $(stat -c '%b * %B' $DIR/$tfile) / 1024))
+
+ # Sleep for a while for statfs to get updated. And not pull from cache.
+ sleep 2
+
+ echo "df after fallocate:"
+ $LFS df
+
+ (( size / 1024 == space )) || error "size $size != requested $space"
+ [ "$ost1_FSTYPE" != ldiskfs ] || (( used >= space )) ||
+ error "used $used < space $space"
+
+ rm $DIR/$tfile || error "rm failed"
+ sync
+ wait_delete_completed
+
+ echo "df after unlink:"
+ $LFS df
+}
+run_test 150e "Verify 90% of available OST space consumed by fallocate"
+
#LU-2902 roc_hit was not able to read all values from lproc
function roc_hit_init() {
local list=$(comma_list $(osts_nodes))
local stripe_index
local nr_files
+ # test with fewer files on ZFS
+ [ "$mds1_FSTYPE" == "zfs" ] && threshold=40
+
stack_trap "do_nodes $mdts $LCTL set_param \
mdt.*.dir_split_count=$saved_threshold"
stack_trap "do_nodes $mdts $LCTL set_param \
}
run_test 425 "lock count should not exceed lru size"
+test_426() {
+ splice-test -r $DIR/$tfile
+ splice-test -rd $DIR/$tfile
+ splice-test $DIR/$tfile
+ splice-test -d $DIR/$tfile
+}
+run_test 426 "splice test on Lustre"
+
prep_801() {
[[ $MDS1_VERSION -lt $(version_code 2.9.55) ]] ||
[[ $OST1_VERSION -lt $(version_code 2.9.55) ]] &&
}
run_test 802b "be able to set MDTs to readonly"
-test_803() {
+test_803a() {
[[ $MDSCOUNT -lt 2 ]] && skip_env "needs >= 2 MDTs"
[ $MDS1_VERSION -lt $(version_code 2.10.54) ] &&
skip "MDS needs to be newer than 2.10.54"
[ $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 803a "verify agent object for remote object"
+
+test_803b() {
+ [[ $MDSCOUNT -lt 2 ]] && skip_env "needs >= 2 MDTs"
+ [ $MDS1_VERSION -lt $(version_code 2.13.56) ] &&
+ skip "MDS needs to be newer than 2.13.56"
+ [ $PARALLEL == "yes" ] && skip "skip parallel run"
+
+ for i in $(seq 0 $((MDSCOUNT - 1))); do
+ $LFS mkdir -i $i $DIR/$tdir.$i || error "mkdir $tdir.$i"
+ done
+
+ local before=0
+ local after=0
+
+ local tmp
+
+ stat $DIR/$tdir.* >/dev/null || error "stat $tdir.*"
+ for i in $(seq 0 $((MDSCOUNT - 1))); do
+ tmp=$(do_facet mds$i $LCTL get_param mdt.*-MDT000$i.md_stats |
+ awk '/getattr/ { print $2 }')
+ before=$((before + tmp))
+ done
+ stat $DIR/$tdir.* >/dev/null || error "stat $tdir.*"
+ for i in $(seq 0 $((MDSCOUNT - 1))); do
+ tmp=$(do_facet mds$i $LCTL get_param mdt.*-MDT000$i.md_stats |
+ awk '/getattr/ { print $2 }')
+ after=$((after + tmp))
+ done
+
+ [ $before -eq $after ] || error "getattr count $before != $after"
+}
+run_test 803b "remote object can getattr from cache"
test_804() {
[[ $MDSCOUNT -lt 2 ]] && skip_env "needs >= 2 MDTs"
test_812a() {
[ $OST1_VERSION -lt $(version_code 2.12.51) ] &&
skip "OST < 2.12.51 doesn't support this fail_loc"
- [ "$SHARED_KEY" = true ] &&
- skip "OSC connections never go IDLE with Shared-Keys enabled"
$LFS setstripe -c 1 -i 0 $DIR/$tfile
# ensure ost1 is connected
test_812b() { # LU-12378
[ $OST1_VERSION -lt $(version_code 2.12.51) ] &&
skip "OST < 2.12.51 doesn't support this fail_loc"
- [ "$SHARED_KEY" = true ] &&
- skip "OSC connections never go IDLE with Shared-Keys enabled"
$LFS setstripe -c 1 -i 0 $DIR/$tfile || error "setstripe failed"
# ensure ost1 is connected
run_test 815 "zero byte tiny write doesn't hang (LU-12382)"
test_816() {
- [ "$SHARED_KEY" = true ] &&
- skip "OSC connections never go IDLE with Shared-Keys enabled"
-
$LFS setstripe -c 1 -i 0 $DIR/$tfile
# ensure ost1 is connected
stat $DIR/$tfile >/dev/null || error "can't stat"