X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fmdsrate-lookup-10dirs.sh;h=7dd3c59bdd92286988a1ec2db3181e420a018d7c;hb=ffe259f81cda5b5cd9241362308ec26ebad194b8;hp=8f772e0bbbbe8764a6014da180fd2dc7c4e00459;hpb=39b944ec54655bb70bcb79fe8223c724f7d08dbf;p=fs%2Flustre-release.git diff --git a/lustre/tests/mdsrate-lookup-10dirs.sh b/lustre/tests/mdsrate-lookup-10dirs.sh index 8f772e0..7dd3c59 100644 --- a/lustre/tests/mdsrate-lookup-10dirs.sh +++ b/lustre/tests/mdsrate-lookup-10dirs.sh @@ -10,13 +10,12 @@ # #1 and from all nodes for #2 aggregate test to measure lookup performance. # TEst performs lookups across all 10 directories. -LUSTRE=${LUSTRE:-`dirname $0`/..} +LUSTRE=${LUSTRE:-$(dirname $0)/..} . $LUSTRE/tests/test-framework.sh init_test_env $@ -. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} + assert_env CLIENTS MDSRATE SINGLECLIENT MPIRUN -MACHINEFILE=${MACHINEFILE:-$TMP/$(basename $0 .sh).machines} # Do not use name [df][0-9]* to avoid cleanup by rm, bug 18045 BASEDIR=$MOUNT/mdsrate @@ -40,8 +39,8 @@ check_and_setup_lustre mkdir -p $BASEDIR chmod 0777 $BASEDIR -$LFS setstripe $BASEDIR -c 1 -get_stripe $BASEDIR +mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-c 1"}} +setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS IFree=$(($(mdsrate_inodes_available) - NUM_DIRS)) if [ $IFree -lt $((NUM_FILES * NUM_DIRS)) ]; then @@ -52,13 +51,22 @@ generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate mach DIRfmt="${BASEDIR}/lookup-%d" +# +# Unlink the files created in the directories under $BASEDIR. +# FIXME: does it make sense to add the possibility to unlink dirfmt to mdsrate? +# +mdsrate_cleanup_all() { + local i + for i in $(seq 0 $NUM_DIRS); do + mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \ + $BASEDIR/lookup-$i 'f%%d' --ignore + done +} + if [ -n "$NOCREATE" ]; then echo "NOCREATE=$NOCREATE => no file creation." else - # FIXME: does it make sense to add the possibility to unlink dirfmt to mdsrate? - for i in $(seq 0 $NUM_DIRS); do - mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $BASEDIR/lookup-$i 'f%%d' --ignore - done + mdsrate_cleanup_all log "===== $0 Test preparation: creating ${NUM_DIRS} dirs with ${NUM_FILES} files." @@ -74,8 +82,12 @@ else mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} -np ${NUM_DIRS} \ ${COMMAND} 2>&1 - # No lookup if error occurs on file creation, abort. - [ ${PIPESTATUS[0]} != 0 ] && error "mdsrate file creation failed, aborting" + # No lookup if error occurs on file creation, abort. + if [ ${PIPESTATUS[0]} != 0 ]; then + error_noexit "mdsrate file creation failed, aborting" + mdsrate_cleanup_all + exit 1 + fi fi COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --lookup --time ${TIME_PERIOD} ${SEED_OPTION} @@ -91,10 +103,12 @@ else mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} -np 1 ${COMMAND} | tee ${LOG} - if [ ${PIPESTATUS[0]} != 0 ]; then - [ -f $LOG ] && sed -e "s/^/log: /" $LOG - error "mdsrate lookups on a single client failed, aborting" - fi + if [ ${PIPESTATUS[0]} != 0 ]; then + [ -f $LOG ] && sed -e "s/^/log: /" $LOG + error_noexit "mdsrate lookup on single client failed, aborting" + mdsrate_cleanup_all + exit 1 + fi fi # 2 @@ -107,19 +121,16 @@ else mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} -np ${NUM_CLIENTS} \ ${COMMAND} | tee ${LOG} - if [ ${PIPESTATUS[0]} != 0 ]; then - [ -f $LOG ] && sed -e "s/^/log: /" $LOG - error "mdsrate lookups on multiple nodes failed, aborting" - fi + if [ ${PIPESTATUS[0]} != 0 ]; then + [ -f $LOG ] && sed -e "s/^/log: /" $LOG + error_noexit "mdsrate lookup on multiple nodes failed, aborting" + mdsrate_cleanup_all + exit 1 + fi fi complete $SECONDS -# FIXME: does it make sense to add the possibility to unlink dirfmt to mdsrate? -for i in $(seq 0 $NUM_DIRS); do - mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \ - $BASEDIR/lookup-$i 'f%%d' --ignore -done - +mdsrate_cleanup_all rmdir $BASEDIR || true rm -f $MACHINEFILE check_and_cleanup_lustre