assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT
assert_env LIVE_CLIENT FSNAME
+remote_mds_nodsh && skip "remote MDS with nodsh" && exit 0
+remote_ost_nodsh && skip "remote OST with nodsh" && exit 0
+
# FAIL_CLIENTS list should not contain the LIVE_CLIENT
FAIL_CLIENTS=$(echo " $FAIL_CLIENTS " | sed -re "s/\s+$LIVE_CLIENT\s+/ /g")
-# This can be a regexp, to allow more clients
-CLIENTS=${CLIENTS:-"`comma_list $LIVE_CLIENT $FAIL_CLIENTS`"}
-
DIR=${DIR:-$MOUNT}
#####
echo "fail $FAIL_CLIENT, next is $FAIL_NEXT"
}
-shutdown_client() {
- client=$1
- if [ "$FAILURE_MODE" = HARD ]; then
- $POWER_DOWN $client
- while ping -w 3 -c 1 $client > /dev/null 2>&1; do
- echo "waiting for node $client to fail"
- sleep 1
- done
- elif [ "$FAILURE_MODE" = SOFT ]; then
- zconf_umount $client $MOUNT -f
- fi
-}
-
-reboot_node() {
- NODE=$1
- if [ "$FAILURE_MODE" = HARD ]; then
- $POWER_UP $NODE
- fi
-}
-
fail_clients() {
num=$1
echo "down clients: $DOWN_CLIENTS"
for client in $DOWN_CLIENTS; do
- reboot_node $client
+ boot_node $client
done
DOWN_NUM=`echo $DOWN_CLIENTS | wc -w`
client_rmdirs
# do_node $CLIENTS "$LCTL "'--device %OSC_`hostname`_'"${facet}_svc_MNT_client_facet recover"
}
-cleanup_and_setup_lustre
+check_and_setup_lustre
# 9 Different Failure Modes Combinations
echo "Starting Test 17 at `date`"
test_0() {
- facet_failover $SINGLEMDS
- echo "Waiting for df pid: $DFPID"
- wait $DFPID || { echo "df returned $?" && return 1; }
+ fail $SINGLEMDS
for i in $(seq $OSTCOUNT) ; do
- facet_failover ost$i || return 4
- echo "Waiting for df pid: $DFPID"
- wait $DFPID || { echo "df returned $?" && return 3; }
+ fail ost$i
done
return 0
}
[ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
#MDS Portion
- facet_failover $SINGLEMDS
- wait $DFPID || echo df failed: $?
+ fail $SINGLEMDS
#Check FS
echo "Test Lustre stability after MDS failover"
client_rm testfile
#MDS Portion
- facet_failover $SINGLEMDS
+ fail $SINGLEMDS
- #Check FS
- echo "Test Lustre stability after MDS failover"
- wait $DFPID || echo "df on down clients fails " || return 1
$PDSH $LIVE_CLIENT "ls -l $MOUNT"
$PDSH $LIVE_CLIENT "rm -f $MOUNT/*_testfile"
equals_msg `basename $0`: test complete, cleaning up
check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true