set -e
#set -x
+export LANG=en_US
export EJOURNAL=${EJOURNAL:-""}
export REFORMAT=${REFORMAT:-""}
export WRITECONF=${WRITECONF:-""}
export RLUSTRE=${RLUSTRE:-$LUSTRE}
export RPWD=${RPWD:-$PWD}
export I_MOUNTED=${I_MOUNTED:-"no"}
- if [ ! -f /lib/modules/$(uname -r)/kernel/fs/lustre/mdt.ko -a \
- ! -f /lib/modules/$(uname -r)/updates/kernel/fs/lustre/mdt.ko -a \
- ! -f `dirname $0`/../mdt/mdt.ko ]; then
- export CLIENTMODSONLY=yes
- fi
+ if [ ! -f /lib/modules/$(uname -r)/kernel/fs/lustre/mdt.ko -a \
+ ! -f /lib/modules/$(uname -r)/updates/kernel/fs/lustre/mdt.ko -a \
+ ! -f $LUSTRE/mdt/mdt.ko ]; then
+ export CLIENTMODSONLY=yes
+ fi
- export SHUTDOWN_ATTEMPTS=${SHUTDOWN_ATTEMPTS:-3}
+ export SHUTDOWN_ATTEMPTS=${SHUTDOWN_ATTEMPTS:-3}
export OSD_TRACK_DECLARES_LBUG=${OSD_TRACK_DECLARES_LBUG:-"yes"}
# command line
load_module ../lnet/lnet/lnet
LNETLND=${LNETLND:-"socklnd/ksocklnd"}
load_module ../lnet/klnds/$LNETLND
- load_module lvfs/lvfs
load_module obdclass/obdclass
load_module ptlrpc/ptlrpc
load_module ptlrpc/gss/ptlrpc_gss
modprobe zfs
load_module osd-zfs/osd_zfs
fi
- load_module mgs/mgs
- load_module mdd/mdd
if [[ $(node_fstypes $HOSTNAME) == *ldiskfs* ]]; then
- #
- # This block shall be moved up beside osd-zfs as soon
- # as osd-ldiskfs stops using mdd symbols.
- #
grep -q exportfs_decode_fh $SYMLIST ||
{ modprobe exportfs 2> /dev/null || true; }
load_module ../ldiskfs/ldiskfs
- load_module lvfs/fsfilt_ldiskfs
load_module osd-ldiskfs/osd_ldiskfs
fi
+ load_module mgs/mgs
+ load_module mdd/mdd
load_module mdt/mdt
load_module ost/ost
load_module lod/lod
echo "Waiting for orphan cleanup..."
# MAX value includes time needed for MDS-OST reconnection
local MAX=$(( TIMEOUT * 2 ))
+ local WAIT_TIMEOUT=${1:-$MAX}
local WAIT=0
local new_wait=true
local list=$(comma_list $(mdts_nodes))
list=$(comma_list $(osts_nodes))
cmd="$LCTL get_param -n obdfilter.*.mds_sync"
fi
- while [ $WAIT -lt $MAX ]; do
+
+ echo "wait $WAIT_TIMEOUT secs maximumly for $list mds-ost sync done."
+ while [ $WAIT -lt $WAIT_TIMEOUT ]; do
local -a sync=($(do_nodes $list "$cmd"))
local con=1
local i
done
sleep 2 # increase waiting time and cover statfs cache
[ ${con} -eq 1 ] && return 0
- echo "Waiting $WAIT secs for $facet mds-ost sync done."
+ echo "Waiting $WAIT secs for $list $i mds-ost sync done."
WAIT=$((WAIT + 2))
done
- echo "$facet recovery not done in $MAX sec. $STATUS"
+
+ # show which nodes are not finished.
+ do_nodes $list "$cmd"
+ echo "$facet recovery node $i not done in $WAIT_TIMEOUT sec. $STATUS"
return 1
}
if [ -z "$*" ]; then
echo "error() without useful message, please fix" > $LOGDIR/err
else
- echo "$@" > $LOGDIR/err
+ if [[ `echo $TYPE | grep ^IGNORE` ]]; then
+ echo "$@" > $LOGDIR/ignore
+ else
+ echo "$@" > $LOGDIR/err
+ fi
fi
}
# use only if we are ignoring failures for this test, bugno required.
# (like ALWAYS_EXCEPT, but run the test and ignore the results.)
-# e.g. error_ignore 5494 "your message"
+# e.g. error_ignore bz5494 "your message" or
+# error_ignore LU-5494 "your message"
error_ignore() {
- local TYPE="IGNORE (bz$1)"
+ local TYPE="IGNORE ($1)"
shift
error_noexit "$@"
}
local name=${TESTSUITE}.test_${1}.test_log.$(hostname -s).log
local test_log=$LOGDIR/$name
rm -rf $LOGDIR/err
+ rm -rf $LOGDIR/ignore
rm -rf $LOGDIR/skip
local SAVE_UMASK=`umask`
umask 0022
(run_one $1 "$2") 2>&1 | tee -i $test_log
local RC=${PIPESTATUS[0]}
- [ $RC -ne 0 ] && [ ! -f $LOGDIR/err ] && \
+ [ $RC -ne 0 ] && [ ! -f $LOGDIR/err ] &&
echo "test_$1 returned $RC" | tee $LOGDIR/err
duration=$((`date +%s` - $BEFORE))
if [[ -f $LOGDIR/err ]]; then
TEST_ERROR=$(cat $LOGDIR/err)
+ elif [[ -f $LOGDIR/ignore ]]; then
+ TEST_ERROR=$(cat $LOGDIR/ignore)
elif [[ -f $LOGDIR/skip ]]; then
TEST_ERROR=$(cat $LOGDIR/skip)
fi