Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-482 tests: cleanup clients/OSTs after MDS error
[fs/lustre-release.git]
/
lustre
/
tests
/
insanity.sh
diff --git
a/lustre/tests/insanity.sh
b/lustre/tests/insanity.sh
index
d85bfb2
..
f0cb403
100755
(executable)
--- a/
lustre/tests/insanity.sh
+++ b/
lustre/tests/insanity.sh
@@
-8,27
+8,40
@@
LUSTRE=${LUSTRE:-`dirname $0`/..}
init_test_env $@
init_test_env $@
-. ${CONFIG:=$LUSTRE/tests/cfg/insanity-local.sh}
+. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+init_logging
+#
+ALWAYS_EXCEPT="10 $INSANITY_EXCEPT"
-ALWAYS_EXCEPT="10 $INSANITY_EXCEPT"
+if [ "$FAILURE_MODE" = "HARD" ]; then
+ skip_env "$0: is not functional with FAILURE_MODE = HARD, please use recovery-double-scale, bz20407"
+ exit 0
+fi
#
#
-[ "$SLOW" = "no" ] && EXCEPT
="$EXCEPT
"
+[ "$SLOW" = "no" ] && EXCEPT
_SLOW="
"
SETUP=${SETUP:-""}
CLEANUP=${CLEANUP:-""}
build_test_filter
SETUP=${SETUP:-""}
CLEANUP=${CLEANUP:-""}
build_test_filter
+SINGLECLIENT=${SINGLECLIENT:-$HOSTNAME}
+LIVE_CLIENT=${LIVE_CLIENT:-$SINGLECLIENT}
+FAIL_CLIENTS=${FAIL_CLIENTS:-$RCLIENTS}
+
assert_env mds_HOST MDS_MKFS_OPTS
assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT
assert_env LIVE_CLIENT FSNAME
assert_env mds_HOST MDS_MKFS_OPTS
assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT
assert_env LIVE_CLIENT FSNAME
+require_dsh_mds || exit 0
+require_dsh_ost || exit 0
-#
This can be a regexp, to allow more clients
-CLIENTS=${CLIENTS:-"`comma_list $LIVE_CLIENT $FAIL_CLIENTS $EXTRA_CLIENTS`"}
+#
FAIL_CLIENTS list should not contain the LIVE_CLIENT
+FAIL_CLIENTS=$(echo " $FAIL_CLIENTS " | sed -re "s/\s+$LIVE_CLIENT\s+/ /g")
DIR=${DIR:-$MOUNT}
DIR=${DIR:-$MOUNT}
+TESTDIR=$DIR/d0.$(basename $0 .sh)
#####
# fail clients round robin
#####
# fail clients round robin
@@
-47,33
+60,16
@@
set_fail_client() {
echo "fail $FAIL_CLIENT, next is $FAIL_NEXT"
}
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
fail_clients() {
num=$1
+
+ log "Request clients to fail: ${num}. Num of clients to fail: ${FAIL_NUM}, already failed: $DOWN_NUM"
if [ -z "$num" ] || [ "$num" -gt $((FAIL_NUM - DOWN_NUM)) ]; then
num=$((FAIL_NUM - DOWN_NUM))
fi
if [ -z "$num" ] || [ "$num" -le 0 ]; then
if [ -z "$num" ] || [ "$num" -gt $((FAIL_NUM - DOWN_NUM)) ]; then
num=$((FAIL_NUM - DOWN_NUM))
fi
if [ -z "$num" ] || [ "$num" -le 0 ]; then
+ log "No clients failed!"
return
fi
return
fi
@@
-89,7
+85,7
@@
fail_clients() {
echo "down clients: $DOWN_CLIENTS"
for client in $DOWN_CLIENTS; do
echo "down clients: $DOWN_CLIENTS"
for client in $DOWN_CLIENTS; do
-
re
boot_node $client
+ boot_node $client
done
DOWN_NUM=`echo $DOWN_CLIENTS | wc -w`
client_rmdirs
done
DOWN_NUM=`echo $DOWN_CLIENTS | wc -w`
client_rmdirs
@@
-115,29
+111,28
@@
client_touch() {
file=$1
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
if echo $DOWN_CLIENTS | grep -q $c; then continue; fi
file=$1
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
if echo $DOWN_CLIENTS | grep -q $c; then continue; fi
- $PDSH $c touch $
MOUNT
/${c}_$file || return 1
+ $PDSH $c touch $
TESTDIR
/${c}_$file || return 1
done
}
client_rm() {
file=$1
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
done
}
client_rm() {
file=$1
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
- $PDSH $c rm $
MOUNT
/${c}_$file
+ $PDSH $c rm $
TESTDIR
/${c}_$file
done
}
client_mkdirs() {
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
done
}
client_mkdirs() {
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
- echo "$c mkdir $MOUNT/$c"
- $PDSH $c "mkdir $MOUNT/$c"
- $PDSH $c "ls -l $MOUNT/$c"
+ echo "$c mkdir $TESTDIR/$c"
+ $PDSH $c "mkdir $TESTDIR/$c && ls -l $TESTDIR/$c"
done
}
client_rmdirs() {
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
done
}
client_rmdirs() {
for c in $LIVE_CLIENT $FAIL_CLIENTS; do
- echo "rmdir $
MOUNT
/$c"
- $PDSH $LIVE_CLIENT "rmdir $
MOUNT
/$c"
+ echo "rmdir $
TESTDIR
/$c"
+ $PDSH $LIVE_CLIENT "rmdir $
TESTDIR
/$c"
done
}
done
}
@@
-146,23
+141,20
@@
clients_recover_osts() {
# do_node $CLIENTS "$LCTL "'--device %OSC_`hostname`_'"${facet}_svc_MNT_client_facet recover"
}
# do_node $CLIENTS "$LCTL "'--device %OSC_`hostname`_'"${facet}_svc_MNT_client_facet recover"
}
-cleanup_and_setup_lustre
+check_and_setup_lustre
+
+rm -rf $TESTDIR
+mkdir -p $TESTDIR
# 9 Different Failure Modes Combinations
echo "Starting Test 17 at `date`"
test_0() {
# 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; }
-
- facet_failover ost1 || return 4
- echo "Waiting for df pid: $DFPID"
- wait $DFPID || { echo "df returned $?" && return 2; }
+ fail $SINGLEMDS
- f
acet_failover ost2 || return 5
- echo "Waiting for df pid: $DFPID"
- wait $DFPID || { echo "df returned $?" && return 3; }
+ f
or i in $(seq $OSTCOUNT) ; do
+ fail ost$i
+ done
return 0
}
run_test 0 "Fail all nodes, independently"
return 0
}
run_test 0 "Fail all nodes, independently"
@@
-178,7
+170,9
@@
run_test 1 "MDS/MDS failure"
############### Second Failure Mode ###############
test_2() {
echo "Verify Lustre filesystem is up and running"
############### Second Failure Mode ###############
test_2() {
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
shutdown_facet $SINGLEMDS
reboot_facet $SINGLEMDS
shutdown_facet $SINGLEMDS
reboot_facet $SINGLEMDS
@@
-187,7
+181,7
@@
test_2() {
change_active $SINGLEMDS
reboot_facet $SINGLEMDS
change_active $SINGLEMDS
reboot_facet $SINGLEMDS
- client
_df
&
+ client
s_up
&
DFPID=$!
sleep 5
DFPID=$!
sleep 5
@@
-195,17
+189,17
@@
test_2() {
echo "Reintegrating OST"
reboot_facet ost1
echo "Reintegrating OST"
reboot_facet ost1
- wait_for ost1
+ wait_for
_facet
ost1
start_ost 1 || return 2
start_ost 1 || return 2
- wait_for $SINGLEMDS
+ wait_for
_facet
$SINGLEMDS
start $SINGLEMDS `mdsdevname 1` $MDS_MOUNT_OPTS || return $?
#Check FS
wait $DFPID
clients_recover_osts ost1
echo "Verify reintegration"
start $SINGLEMDS `mdsdevname 1` $MDS_MOUNT_OPTS || return $?
#Check FS
wait $DFPID
clients_recover_osts ost1
echo "Verify reintegration"
- client
_df
|| return 1
+ client
s_up
|| return 1
}
run_test 2 "Second Failure Mode: MDS/OST `date`"
}
run_test 2 "Second Failure Mode: MDS/OST `date`"
@@
-216,14
+210,14
@@
run_test 2 "Second Failure Mode: MDS/OST `date`"
test_3() {
#Create files
echo "Verify Lustre filesystem is up and running"
test_3() {
#Create files
echo "Verify Lustre filesystem is up and running"
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
#MDS Portion
#MDS Portion
- facet_failover $SINGLEMDS
- wait $DFPID || echo df failed: $?
+ fail $SINGLEMDS
#Check FS
echo "Test Lustre stability after MDS failover"
#Check FS
echo "Test Lustre stability after MDS failover"
- client
_df
+ client
s_up
#CLIENT Portion
echo "Failing 2 CLIENTS"
#CLIENT Portion
echo "Failing 2 CLIENTS"
@@
-231,13
+225,13
@@
test_3() {
#Check FS
echo "Test Lustre stability after CLIENT failure"
#Check FS
echo "Test Lustre stability after CLIENT failure"
- client
_df
+ client
s_up
#Reintegration
echo "Reintegrating CLIENTS"
reintegrate_clients || return 1
#Reintegration
echo "Reintegrating CLIENTS"
reintegrate_clients || return 1
- client
_df
|| return 3
+ client
s_up
|| return 3
sleep 2 # give it a little time for fully recovered before next test
}
run_test 3 "Thirdb Failure Mode: MDS/CLIENT `date`"
sleep 2 # give it a little time for fully recovered before next test
}
run_test 3 "Thirdb Failure Mode: MDS/CLIENT `date`"
@@
-252,7
+246,7
@@
test_4() {
#Check FS
echo "Test Lustre stability after OST failure"
#Check FS
echo "Test Lustre stability after OST failure"
- client
_df
&
+ client
s_up
&
DFPIDA=$!
sleep 5
DFPIDA=$!
sleep 5
@@
-264,17
+258,17
@@
test_4() {
change_active $SINGLEMDS
reboot_facet $SINGLEMDS
change_active $SINGLEMDS
reboot_facet $SINGLEMDS
- client
_df
&
+ client
s_up
&
DFPIDB=$!
sleep 5
#Reintegration
echo "Reintegrating OST"
reboot_facet ost1
DFPIDB=$!
sleep 5
#Reintegration
echo "Reintegrating OST"
reboot_facet ost1
- wait_for ost1
+ wait_for
_facet
ost1
start_ost 1
start_ost 1
-
- wait_for $SINGLEMDS
+
+ wait_for
_facet
$SINGLEMDS
start $SINGLEMDS `mdsdevname 1` $MDS_MOUNT_OPTS
#Check FS
start $SINGLEMDS `mdsdevname 1` $MDS_MOUNT_OPTS
#Check FS
@@
-282,18
+276,22
@@
test_4() {
wait $DFPIDB
clients_recover_osts ost1
echo "Test Lustre stability after MDS failover"
wait $DFPIDB
clients_recover_osts ost1
echo "Test Lustre stability after MDS failover"
- client
_df
|| return 1
+ client
s_up
|| return 1
}
run_test 4 "Fourth Failure Mode: OST/MDS `date`"
###################################################
############### Fifth Failure Mode ###############
test_5() {
}
run_test 4 "Fourth Failure Mode: OST/MDS `date`"
###################################################
############### Fifth Failure Mode ###############
test_5() {
+ [ $OSTCOUNT -lt 2 ] && skip_env "$OSTCOUNT < 2, not enough OSTs" && return 0
+
echo "Fifth Failure Mode: OST/OST `date`"
#Create files
echo "Verify Lustre filesystem is up and running"
echo "Fifth Failure Mode: OST/OST `date`"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
#OST Portion
shutdown_facet ost1
#OST Portion
shutdown_facet ost1
@@
-301,7
+299,7
@@
test_5() {
#Check FS
echo "Test Lustre stability after OST failure"
#Check FS
echo "Test Lustre stability after OST failure"
- client
_df
&
+ client
s_up
&
DFPIDA=$!
sleep 5
DFPIDA=$!
sleep 5
@@
-311,15
+309,15
@@
test_5() {
#Check FS
echo "Test Lustre stability after OST failure"
#Check FS
echo "Test Lustre stability after OST failure"
- client
_df
&
+ client
s_up
&
DFPIDB=$!
sleep 5
#Reintegration
echo "Reintegrating OSTs"
DFPIDB=$!
sleep 5
#Reintegration
echo "Reintegrating OSTs"
- wait_for ost1
+ wait_for
_facet
ost1
start_ost 1
start_ost 1
- wait_for ost2
+ wait_for
_facet
ost2
start_ost 2
clients_recover_osts ost1
start_ost 2
clients_recover_osts ost1
@@
-328,7
+326,7
@@
test_5() {
wait $DFPIDA
wait $DFPIDB
wait $DFPIDA
wait $DFPIDB
- client
_df
|| return 2
+ client
s_up
|| return 2
}
run_test 5 "Fifth Failure Mode: OST/OST `date`"
###################################################
}
run_test 5 "Fifth Failure Mode: OST/OST `date`"
###################################################
@@
-339,7
+337,9
@@
test_6() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df || return 1
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
client_touch testfile || return 2
#OST Portion
client_touch testfile || return 2
#OST Portion
@@
-348,8
+348,9
@@
test_6() {
#Check FS
echo "Test Lustre stability after OST failure"
#Check FS
echo "Test Lustre stability after OST failure"
- client
_df
&
+ client
s_up
&
DFPIDA=$!
DFPIDA=$!
+ echo DFPIDA=$DFPIDA
sleep 5
#CLIENT Portion
sleep 5
#CLIENT Portion
@@
-358,21
+359,25
@@
test_6() {
#Check FS
echo "Test Lustre stability after CLIENTs failure"
#Check FS
echo "Test Lustre stability after CLIENTs failure"
- client
_df
&
+ client
s_up
&
DFPIDB=$!
DFPIDB=$!
+ echo DFPIDB=$DFPIDB
sleep 5
#Reintegration
echo "Reintegrating OST/CLIENTs"
sleep 5
#Reintegration
echo "Reintegrating OST/CLIENTs"
- wait_for ost1
+ wait_for
_facet
ost1
start_ost 1
start_ost 1
- reintegrate_clients
+ reintegrate_clients
|| return 1
sleep 5
sleep 5
+ wait_remote_prog "stat -f" $((TIMEOUT * 3 + 20))
wait $DFPIDA
wait $DFPIDB
wait $DFPIDA
wait $DFPIDB
+
echo "Verifying mount"
echo "Verifying mount"
- client_df || return 3
+ [ -z "$(mounted_lustre_filesystems)" ] && return 3
+ clients_up
}
run_test 6 "Sixth Failure Mode: OST/CLIENT `date`"
###################################################
}
run_test 6 "Sixth Failure Mode: OST/CLIENT `date`"
###################################################
@@
-384,7
+389,9
@@
test_7() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
client_touch testfile || return 1
#CLIENT Portion
client_touch testfile || return 1
#CLIENT Portion
@@
-393,9
+400,9
@@
test_7() {
#Check FS
echo "Test Lustre stability after CLIENTs failure"
#Check FS
echo "Test Lustre stability after CLIENTs failure"
- client
_df
- $PDSH $LIVE_CLIENT "ls -l $
MOUNT
"
- $PDSH $LIVE_CLIENT "rm -f $
MOUNT
/*_testfile"
+ client
s_up
+ $PDSH $LIVE_CLIENT "ls -l $
TESTDIR
"
+ $PDSH $LIVE_CLIENT "rm -f $
TESTDIR
/*_testfile"
#Sleep
echo "Wait 1 minutes"
#Sleep
echo "Wait 1 minutes"
@@
-403,22
+410,21
@@
test_7() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && return 2
+
+ clients_up
client_rm testfile
#MDS Portion
client_rm testfile
#MDS Portion
- fa
cet_failover
$SINGLEMDS
+ fa
il
$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"
+ $PDSH $LIVE_CLIENT "ls -l $TESTDIR"
+ $PDSH $LIVE_CLIENT "rm -f $TESTDIR/*_testfile"
#Reintegration
echo "Reintegrating CLIENTs"
#Reintegration
echo "Reintegrating CLIENTs"
- reintegrate_clients
- client
_df || return 2
+ reintegrate_clients
|| return 2
+ client
s_up
#Sleep
echo "wait 1 minutes"
#Sleep
echo "wait 1 minutes"
@@
-434,7
+440,9
@@
test_8() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
client_touch testfile
#CLIENT Portion
client_touch testfile
#CLIENT Portion
@@
-443,9
+451,9
@@
test_8() {
#Check FS
echo "Test Lustre stability after CLIENTs failure"
#Check FS
echo "Test Lustre stability after CLIENTs failure"
- client
_df
- $PDSH $LIVE_CLIENT "ls -l $
MOUNT
"
- $PDSH $LIVE_CLIENT "rm -f $
MOUNT
/*_testfile"
+ client
s_up
+ $PDSH $LIVE_CLIENT "ls -l $
TESTDIR
"
+ $PDSH $LIVE_CLIENT "rm -f $
TESTDIR
/*_testfile"
#Sleep
echo "Wait 1 minutes"
#Sleep
echo "Wait 1 minutes"
@@
-453,7
+461,9
@@
test_8() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
client_touch testfile
client_touch testfile
@@
-463,20
+473,20
@@
test_8() {
#Check FS
echo "Test Lustre stability after OST failure"
#Check FS
echo "Test Lustre stability after OST failure"
- client
_df
&
+ client
s_up
&
DFPID=$!
sleep 5
#non-failout hangs forever here
DFPID=$!
sleep 5
#non-failout hangs forever here
- #$PDSH $LIVE_CLIENT "ls -l $
MOUNT
"
- #$PDSH $LIVE_CLIENT "rm -f $
MOUNT
/*_testfile"
+ #$PDSH $LIVE_CLIENT "ls -l $
TESTDIR
"
+ #$PDSH $LIVE_CLIENT "rm -f $
TESTDIR
/*_testfile"
#Reintegration
echo "Reintegrating CLIENTs/OST"
#Reintegration
echo "Reintegrating CLIENTs/OST"
- reintegrate_clients
- wait_for ost1
+ reintegrate_clients
|| return 3
+ wait_for
_facet
ost1
start_ost 1
wait $DFPID
start_ost 1
wait $DFPID
- client
_df
|| return 1
+ client
s_up
|| return 1
client_touch testfile2 || return 2
#Sleep
client_touch testfile2 || return 2
#Sleep
@@
-493,7
+503,9
@@
test_9() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
- client_df
+ [ -z "$(mounted_lustre_filesystems)" ] && error "Lustre is not running"
+
+ clients_up
client_touch testfile || return 1
#CLIENT Portion
client_touch testfile || return 1
#CLIENT Portion
@@
-502,9
+514,9
@@
test_9() {
#Check FS
echo "Test Lustre stability after CLIENTs failure"
#Check FS
echo "Test Lustre stability after CLIENTs failure"
- client
_df
- $PDSH $LIVE_CLIENT "ls -l $
MOUNT
" || return 1
- $PDSH $LIVE_CLIENT "rm -f $
MOUNT
/*_testfile" || return 2
+ client
s_up
+ $PDSH $LIVE_CLIENT "ls -l $
TESTDIR
" || return 1
+ $PDSH $LIVE_CLIENT "rm -f $
TESTDIR
/*_testfile" || return 2
#Sleep
echo "Wait 1 minutes"
#Sleep
echo "Wait 1 minutes"
@@
-512,7
+524,7
@@
test_9() {
#Create files
echo "Verify Lustre filesystem is up and running"
#Create files
echo "Verify Lustre filesystem is up and running"
-
$PDSH $LIVE_CLIENT df $MOU
NT || return 3
+
client_up $LIVE_CLIE
NT || return 3
client_touch testfile || return 4
#CLIENT Portion
client_touch testfile || return 4
#CLIENT Portion
@@
-521,14
+533,14
@@
test_9() {
#Check FS
echo "Test Lustre stability after CLIENTs failure"
#Check FS
echo "Test Lustre stability after CLIENTs failure"
- client
_df
- $PDSH $LIVE_CLIENT "ls -l $
MOUNT
" || return 5
- $PDSH $LIVE_CLIENT "rm -f $
MOUNT
/*_testfile" || return 6
+ client
s_up
+ $PDSH $LIVE_CLIENT "ls -l $
TESTDIR
" || return 5
+ $PDSH $LIVE_CLIENT "rm -f $
TESTDIR
/*_testfile" || return 6
#Reintegration
echo "Reintegrating CLIENTs/CLIENTs"
#Reintegration
echo "Reintegrating CLIENTs/CLIENTs"
- reintegrate_clients
- client
_df || return 7
+ reintegrate_clients
|| return 7
+ client
s_up
#Sleep
echo "Wait 1 minutes"
#Sleep
echo "Wait 1 minutes"
@@
-545,6
+557,6
@@
test_10() {
}
run_test 10 "Running Availability for 6 hours..."
}
run_test 10 "Running Availability for 6 hours..."
-equals_msg `basename $0`: test complete, cleaning up
+complete $(basename $0) $SECONDS
check_and_cleanup_lustre
check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+exit_status