# bug number for skipped test: 13739 19280
HEAD_EXCEPT=" 32a 50e 50f"
-# bug number for skipped test:
+# bug number for skipped test:
ALWAYS_EXCEPT=" $CONF_SANITY_EXCEPT $HEAD_EXCEPT"
# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
gen_config() {
# The MGS must be started before the OSTs for a new fs, so start
- # and stop to generate the startup logs.
+ # and stop to generate the startup logs.
start_mds
start_ost
wait_osc_import_state mds ost FULL
check_mount() {
do_facet client "cp /etc/passwd $DIR/a" || return 71
do_facet client "rm $DIR/a" || return 72
- # make sure lustre is actually mounted (touch will block,
- # but grep won't, so do it after)
+ # make sure lustre is actually mounted (touch will block,
+ # but grep won't, so do it after)
do_facet client "grep $MOUNT' ' /proc/mounts > /dev/null" || return 73
echo "setup single mount lustre success"
}
check_mount2() {
- do_facet client "touch $DIR/a" || return 71
- do_facet client "rm $DIR/a" || return 72
- do_facet client "touch $DIR2/a" || return 73
- do_facet client "rm $DIR2/a" || return 74
+ do_facet client "touch $DIR/a" || return 71
+ do_facet client "rm $DIR/a" || return 72
+ do_facet client "touch $DIR2/a" || return 73
+ do_facet client "rm $DIR2/a" || return 74
echo "setup double mount lustre success"
}
CHECK_PTLDEBUG="`do_facet ost1 lctl get_param -n debug`"
if [ "$CHECK_PTLDEBUG" ] && { \
[ "$CHECK_PTLDEBUG" = "trace inode warning error emerg console" ] ||
- [ "$CHECK_PTLDEBUG" = "trace inode" ]; }; then
+ [ "$CHECK_PTLDEBUG" = "trace inode" ]; }; then
echo "lnet.debug success"
else
echo "lnet.debug: want 'trace inode', have '$CHECK_PTLDEBUG'"
test_23a() { # was test_23
setup
# fail mds
- stop $SINGLEMDS
+ stop $SINGLEMDS
# force down client so that recovering mds waits for reconnect
local running=$(grep -c $MOUNT /proc/mounts) || true
if [ $running -ne 0 ]; then
}
test_24a() {
- #set up fs1
+ #set up fs1
gen_config
#set up fs2
[ -n "$ost1_HOST" ] && fs2ost_HOST=$ost1_HOST
rm $MOUNT2/b || return 4
# 2 is actually mounted
grep $MOUNT2' ' /proc/mounts > /dev/null || return 5
- # failover
+ # failover
facet_failover fs2mds
facet_failover fs2ost
df
- umount_client $MOUNT
+ umount_client $MOUNT
# the MDS must remain up until last MDT
stop_mds
MDS=$(do_facet $SINGLEMDS "lctl get_param -n devices" | awk '($3 ~ "mdt" && $4 ~ "MDT") { print $4 }' | head -1)
local fs2mdsdev=${fs2mds_DEV:-${MDSDEV}_2}
- add fs2mds $MDS_MKFS_OPTS --fsname=${FSNAME}2 --mgs --reformat $fs2mdsdev || exit 10
+ add fs2mds $MDS_MKFS_OPTS --fsname=${FSNAME}2 --mgs --reformat $fs2mdsdev || exit 10
setup
start fs2mds $fs2mdsdev $MDS_MOUNT_OPTS && return 2
cleanup || return 6
local myfacet=$1
local TEST=$2
local PARAM=$3
- local ORIG=$(do_facet $myfacet "$TEST")
+ local ORIG=$(do_facet $myfacet "$TEST")
if [ $# -gt 3 ]; then
local FINAL=$4
else
test_27a() {
start_ost || return 1
start_mds || return 2
- echo "Requeue thread should have started: "
- ps -e | grep ll_cfg_requeue
+ echo "Requeue thread should have started: "
+ ps -e | grep ll_cfg_requeue
set_and_check ost1 "lctl get_param -n obdfilter.$FSNAME-OST0000.client_cache_seconds" "$FSNAME-OST0000.ost.client_cache_seconds" || return 3
cleanup_nocli
}
echo "Live client success: got $RESULT"
fi
- # check MDT too
+ # check MDT too
local MPROC="osc.$FSNAME-OST0001-osc-[M]*.active"
local MAX=30
local WAIT=0
for i in ${LIST[@]}; do
set_and_check client "$TEST" "$FSNAME.llite.max_read_ahead_whole_mb" $i || return 3
done
- # make sure client restart still works
+ # make sure client restart still works
umount_client $MOUNT
mount_client $MOUNT || return 4
- [ "$($TEST)" -ne "$i" ] && return 5
+ [ "$($TEST)" -ne "$i" ] && return 5
set_and_check client "$TEST" "$FSNAME.llite.max_read_ahead_whole_mb" $ORIG || return 6
cleanup
}
run_test 31 "Connect to non-existent node (shouldn't crash)"
# Use these start32/stop32 fn instead of t-f start/stop fn,
-# for local devices, to skip global facet vars init
+# for local devices, to skip global facet vars init
stop32 () {
local facet=$1
shift
if [ $RC -ne 0 ]; then
echo "mount -t lustre $@ ${device} ${MOUNT%/*}/${facet}"
echo "Start of ${device} of local ${facet} failed ${RC}"
- fi
+ fi
losetup -a
return $RC
}
# nids are wrong, so client wont work, but server should start
start32 mds $tmpdir/mds "-o loop,exclude=lustre-OST0000" && \
trap cleanup_32 EXIT INT || return 3
-
+
local UUID=$(lctl get_param -n mds.lustre-MDT0000.uuid)
echo MDS uuid $UUID
- [ "$UUID" == "mdsA_UUID" ] || error "UUID is wrong: $UUID"
+ [ "$UUID" == "mdsA_UUID" ] || error "UUID is wrong: $UUID"
$TUNEFS --mgsnode=`hostname` $tmpdir/ost1 || error "tunefs failed"
start32 ost1 $tmpdir/ost1 "-o loop" || return 5
UUID=$(lctl get_param -n obdfilter.lustre-OST0000.uuid)
echo OST uuid $UUID
- [ "$UUID" == "ost1_UUID" ] || error "UUID is wrong: $UUID"
+ [ "$UUID" == "ost1_UUID" ] || error "UUID is wrong: $UUID"
local NID=$($LCTL list_nids | head -1)
- echo "OSC changes should return err:"
+ echo "OSC changes should return err:"
$LCTL conf_param lustre-OST0000.osc.max_dirty_mb=15 && return 7
$LCTL conf_param lustre-OST0000.failover.node=$NID && return 8
echo "ok."
- echo "MDC changes should succeed:"
+ echo "MDC changes should succeed:"
$LCTL conf_param lustre-MDT0000.mdc.max_rpcs_in_flight=9 || return 9
$LCTL conf_param lustre-MDT0000.failover.node=$NID || return 10
echo "ok."
local UUID=$(lctl get_param -n mdt.${NEWNAME}-MDT0000.uuid)
echo MDS uuid $UUID
- [ "$UUID" == "${NEWNAME}-MDT0000_UUID" ] || error "UUID is wrong: $UUID"
+ [ "$UUID" == "${NEWNAME}-MDT0000_UUID" ] || error "UUID is wrong: $UUID"
$TUNEFS --mgsnode=`hostname` --writeconf --fsname=$NEWNAME $tmpdir/ost1 || error "tunefs failed"
start32 ost1 $tmpdir/ost1 "-o loop" || return 5
echo OST uuid $UUID
[ "$UUID" == "${NEWNAME}-OST0000_UUID" ] || error "UUID is wrong: $UUID"
- echo "OSC changes should succeed:"
+ echo "OSC changes should succeed:"
$LCTL conf_param ${NEWNAME}-OST0000.osc.max_dirty_mb=15 || return 7
$LCTL conf_param ${NEWNAME}-OST0000.failover.node=$NID || return 8
echo "ok."
- echo "MDC changes should succeed:"
+ echo "MDC changes should succeed:"
$LCTL conf_param ${NEWNAME}-MDT0000.mdc.max_rpcs_in_flight=9 || return 9
echo "ok."
mount -t lustre $MGSNID:/${FSNAME2} $MOUNT2 || rc=2
echo "ok."
- cp /etc/hosts $MOUNT2/ || rc=3
+ cp /etc/hosts $MOUNT2/ || rc=3
$LFS getstripe $MOUNT2/hosts
umount -d $MOUNT2
ALLOWANCE=$((64 * $OSTCOUNT))
- if [ $DFTOTAL -lt $(($BKTOTAL - $ALLOWANCE)) ] ||
+ if [ $DFTOTAL -lt $(($BKTOTAL - $ALLOWANCE)) ] ||
[ $DFTOTAL -gt $(($BKTOTAL + $ALLOWANCE)) ] ; then
echo "**** FAIL: df total($DFTOTAL) mismatch OST total($BKTOTAL)"
rc=1
fi
- if [ $DFFREE -lt $(($BKFREE - $ALLOWANCE)) ] ||
+ if [ $DFFREE -lt $(($BKFREE - $ALLOWANCE)) ] ||
[ $DFFREE -gt $(($BKFREE + $ALLOWANCE)) ] ; then
echo "**** FAIL: df free($DFFREE) mismatch OST free($BKFREE)"
rc=2
fi
- if [ $DFAVAIL -lt $(($BKAVAIL - $ALLOWANCE)) ] ||
+ if [ $DFAVAIL -lt $(($BKAVAIL - $ALLOWANCE)) ] ||
[ $DFAVAIL -gt $(($BKAVAIL + $ALLOWANCE)) ] ; then
echo "**** FAIL: df avail($DFAVAIL) mismatch OST avail($BKAVAIL)"
rc=3
PTLDEBUG=+malloc
setup
cleanup
- perl $SRCDIR/leak_finder.pl $TMP/debug 2>&1 | egrep '*** Leak:' &&
+ perl $SRCDIR/leak_finder.pl $TMP/debug 2>&1 | egrep '*** Leak:' &&
error "memory leak detected" || true
}
run_test 39 "leak_finder recognizes both LUSTRE and LNET malloc messages"
start $SINGLEMDS $MDSDEV $MDS_MOUNT_OPTS -o nosvc -n
start ost1 `ostdevname 1` $OST_MOUNT_OPTS
- start $SINGLEMDS $MDSDEV $MDS_MOUNT_OPTS -o nomgs
+ start $SINGLEMDS $MDSDEV $MDS_MOUNT_OPTS -o nomgs,force
mkdir -p $MOUNT
mount_client $MOUNT || return 1
sleep 5
wait_osc_import_state mds ost FULL
#start_client
mount_client $MOUNT || return 3
-
+
start_ost2 || return 4
start ost3 `ostdevname 3` $OST_MOUNT_OPTS || return 5
start ost4 `ostdevname 4` $OST_MOUNT_OPTS || return 6
echo "ok" > $MOUNT2/widestripe
$LFS getstripe $MOUNT2/widestripe || return 11
# fill acl buffer for avoid expand lsm to them
- awk -F : '{if (FNR < 25) { print "u:"$1":rwx" }}' /etc/passwd | while read acl; do
+ awk -F : '{if (FNR < 25) { print "u:"$1":rwx" }}' /etc/passwd | while read acl; do
setfacl -m $acl $MOUNT2/widestripe
done
lru_size[count]=$lrs
let count=count+1
done
-
+
facet_failover ost1
facet_failover $SINGLEMDS
df -h $MOUNT || return 3
stop_mds || return 3
OST_MKFS_OPTS="--ost --fsname=$FSNAME --device-size=$OSTSIZE --mgsnode=$MGSNID --param sys.timeout=$LOCAL_TIMEOUT --param sys.ldlm_timeout=$((LOCAL_TIMEOUT - 1)) $MKFSOPT $OSTOPT"
-
+
reformat
start_mds || return 4
start_ost || return 5
if [ $LDLM_MDS -ne $LDLM_OST1 ] || [ $LDLM_MDS -ne $LDLM_CLIENT ]; then
error "Different LDLM_TIMEOUT:$LDLM_MDS $LDLM_OST1 $LDLM_CLIENT"
fi
-
+
if [ $LDLM_MDS -ne $((LOCAL_TIMEOUT - 1)) ]; then
error "LDLM_TIMEOUT($LDLM_MDS) is not correct"
fi
-
+
cleanup || return $?
MDS_MKFS_OPTS=$OLD_MDS_MKFS_OPTS
mount_client $MOUNT || error "Unable to mount client"
lctl set_param llite.$FSNAME-*.lazystatfs=0
-
+
multiop_bg_pause $MOUNT _f
RC1=$?
pid=$!
sleep $(( $TIMEOUT+1 ))
kill -0 $pid
[ $? -ne 0 ] && error "process isn't sleep"
- start_ost || error "Unable to start OST1"
+ start_ost || error "Unable to start OST1"
wait $pid || error "statfs failed"
fi
umount_client $MOUNT || error "Unable to unmount client"
- stop_ost || error "Unable to stop OST1"
+ stop_ost || error "Unable to stop OST1"
stop_mds || error "Unable to stop MDS"
}
run_test 50e "normal statfs all servers down =========================="
wait_osc_import_state mds ost2 DISCONN
mount_client $MOUNT || error "Unable to mount client"
lctl set_param llite.$FSNAME-*.lazystatfs=0
-
+
multiop_bg_pause $MOUNT _f
RC1=$?
pid=$!
sleep $(( $TIMEOUT+1 ))
kill -0 $pid
[ $? -ne 0 ] && error "process isn't sleep"
- start_ost2 || error "Unable to start OST1"
+ start_ost2 || error "Unable to start OST1"
wait $pid || error "statfs failed"
fi
umount_client $MOUNT || error "Unable to unmount client"
- stop_ost || error "Unable to stop OST1"
+ stop_ost || error "Unable to stop OST1"
stop_mds || error "Unable to stop MDS"
writeconf
}