#
require_dsh_mds || exit 0
require_dsh_ost || exit 0
-#
-[ "$SLOW" = "no" ] && EXCEPT_SLOW="30a 31 45 69"
+
+# 8 22 (min)"
+[ "$SLOW" = "no" ] && EXCEPT_SLOW="45 69"
assert_DIR
[ $UID -ne 0 -o $RUNAS_ID -eq 0 ] && skip_env "run as root"
ID1=${ID1:-501}
- USER1=$(cat /etc/passwd | grep :$ID1:$ID1: | cut -d: -f1)
+ USER1=$(getent passwd | grep :$ID1:$ID1: | cut -d: -f1)
[ -z "$USER1" ] && skip_env "missing user with uid=$ID1 gid=$ID1" &&
return
df -h $MOUNT &
log "sleep 60 sec"
sleep 60
- #define OBD_FAIL_PTLRPC_LONG_UNLINK 0x50f
- do_facet client "$LCTL set_param fail_loc=0x50f"
+#define OBD_FAIL_PTLRPC_LONG_REPL_UNLINK 0x50f
+ do_facet client "$LCTL set_param fail_loc=0x50f fail_val=0"
log "sleep 10 sec"
sleep 10
manual_umount_client --force || error "manual_umount_client failed"
echo
# backup files
- echo backup files to $TMP/files
+ echo backup files to $TMP/$tdir
local files=$(find $DIR/$tdir -type f -newer $TMP/modified_first)
- copy_files_xattrs $(hostname) $TMP/files $TMP/file_xattrs $files ||
+ copy_files_xattrs $(hostname) $TMP/$tdir $TMP/file_xattrs $files ||
error "Unable to copy files"
umount_client $MOUNT || error "Unable to umount client"
error "Some entry under /lost+found should be repaired"
# compare files
- diff_files_xattrs $(hostname) $TMP/files $TMP/file_xattrs $files ||
+ diff_files_xattrs $(hostname) $TMP/$tdir $TMP/file_xattrs $files ||
error "Unable to diff files"
- rm -rf $TMP/files $TMP/file_xattrs ||
+ rm -rf $TMP/$tdir $TMP/file_xattrs ||
error "Unable to delete temporary files"
do_node $ost1node "rm -rf $ost1tmp" ||
error "Unable to delete temporary files"
}
run_test 76b "verify params log setup correctly"
+test_76c() {
+ [[ $(lustre_version_code mgs) -ge $(version_code 2.8.54) ]] ||
+ { skip "Need MDS version at least 2.4.52" && return 0; }
+ setupall
+ local MASK_PARAM="mdd.*.changelog_mask"
+ echo "Change changelog_mask"
+ do_facet mgs $LCTL set_param -P $MASK_PARAM=-CLOSE ||
+ error "Can't change changlog_mask"
+ wait_update $(facet_host mds) "$LCTL get_param -n $MASK_PARAM |
+ grep 'CLOSE'" ""
+
+ echo "Check the value is stored after mds remount"
+ stop_mds || error "Failed to stop MDS"
+ start_mds || error "Failed to start MDS"
+ local CHANGELOG_MASK=$(do_facet mgs $LCTL get_param -n $MASK_PARAM)
+ echo $CHANGELOG_MASK | grep CLOSE > /dev/null &&
+ error "changelog_mask is not changed"
+
+ stopall
+}
+run_test 76c "verify changelog_mask is applied with set_param -P"
+
test_77() { # LU-3445
local server_version=$(lustre_version_code $SINGLEMDS)
skip "only applicable to ldiskfs-based MDTs and OSTs" && return
# reformat the Lustre filesystem with a smaller size
+ local saved_MDSCOUNT=$MDSCOUNT
local saved_MDSSIZE=$MDSSIZE
+ local saved_OSTCOUNT=$OSTCOUNT
local saved_OSTSIZE=$OSTSIZE
+ MDSCOUNT=1
+ OSTCOUNT=1
MDSSIZE=$((MDSSIZE - 20000))
OSTSIZE=$((OSTSIZE - 20000))
reformat || error "(1) reformat Lustre filesystem failed"
local i
local file
local num_files=100
+
mkdir $MOUNT/$tdir || error "(3) mkdir $MOUNT/$tdir failed"
+ $LFS df; $LFS df -i
for i in $(seq $num_files); do
file=$MOUNT/$tdir/$tfile-$i
- dd if=/dev/urandom of=$file count=1 bs=1M ||
+ dd if=/dev/urandom of=$file count=1 bs=1M || {
+ $LCTL get_param osc.*.cur*grant*
+ $LFS df; $LFS df -i;
+ # stop creating files if there is no more space
+ if [ ! -e $file ]; then
+ num_files=$((i - 1))
+ break
+ fi
+
+ $LFS getstripe -v $file
+ local ost_idx=$(LFS getstripe -i $file)
+ do_facet ost$((ost_idx + 1)) \
+ $LCTL get_param obdfilter.*.*grant*
error "(4) create $file failed"
+ }
done
# unmount the Lustre filesystem
# unmount and reformat the Lustre filesystem
cleanup || error "(12) cleanup Lustre filesystem failed"
combined_mgs_mds || stop_mgs || error "(13) stop mgs failed"
+
+ MDSCOUNT=$saved_MDSCOUNT
+ OSTCOUNT=$saved_OSTCOUNT
reformat || error "(14) reformat Lustre filesystem failed"
}
run_test 78 "run resize2fs on MDT and OST filesystems"
}
run_test 92 "ldev returns MGS NID correctly in command substitution"
+test_93() {
+ [ $MDSCOUNT -lt 3 ] && skip "needs >= 3 MDTs" && return
+
+ reformat
+ #start mgs or mgs/mdt0
+ if ! combined_mgs_mds ; then
+ start_mgs
+ start_mdt 1
+ else
+ start_mdt 1
+ fi
+
+ start_ost || error "OST0 start fail"
+
+ #define OBD_FAIL_MGS_WRITE_TARGET_DELAY 0x90e
+ do_facet mgs "$LCTL set_param fail_val = 10 fail_loc=0x8000090e"
+ for num in $(seq 2 $MDSCOUNT); do
+ start_mdt $num &
+ done
+
+ mount_client $MOUNT || error "mount client fails"
+ wait_osc_import_state mds ost FULL
+ wait_osc_import_state client ost FULL
+ check_mount || error "check_mount failed"
+
+ cleanup || error "cleanup failed with $?"
+}
+run_test 93 "register mulitple MDT at the same time"
+
if ! combined_mgs_mds ; then
stop mgs
fi