X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fsanity-dom.sh;h=41b29eb2b00cbb399bf8b3f23d192279fb5032cc;hb=1155c2fee4c197bfc295f761d52f9b748c37ad79;hp=493178661d4aa687b0fedf827d96622d18388fc6;hpb=4ea695fd2cf205c24f30b6b3accd82723f87b0d4;p=fs%2Flustre-release.git diff --git a/lustre/tests/sanity-dom.sh b/lustre/tests/sanity-dom.sh index 4931786..41b29eb 100644 --- a/lustre/tests/sanity-dom.sh +++ b/lustre/tests/sanity-dom.sh @@ -7,23 +7,21 @@ set -e ONLY=${ONLY:-"$*"} -ALWAYS_EXCEPT="$SANITY_DOM_EXCEPT" -[ "$SLOW" = "no" ] && EXCEPT_SLOW="" -# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT! - -LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} +LUSTRE=${LUSTRE:-$(dirname $0)/..} . $LUSTRE/tests/test-framework.sh -CLEANUP=${CLEANUP:-:} -SETUP=${SETUP:-:} init_test_env $@ -. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} init_logging +# bug number for skipped test: +ALWAYS_EXCEPT="$SANITY_DOM_EXCEPT" +# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT! + +build_test_filter + [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.10.56) ]] || { skip "Need MDS version at least 2.10.56"; exit 0; } -MULTIOP=${MULTIOP:-multiop} OPENFILE=${OPENFILE:-openfile} MOUNT_2=${MOUNT_2:-"yes"} FAIL_ON_ERROR=false @@ -36,19 +34,11 @@ if [[ $UID -eq 0 && $RUNAS_ID -eq 0 ]]; then fi check_runas_id $RUNAS_ID $RUNAS_GID $RUNAS -build_test_filter - DOM="yes" DOM_SIZE=${DOM_SIZE:-"$((1024*1024))"} OSC="mdc" -trap restore_default_layout EXIT -restore_default_layout() { - [ -n "$saved_layout" ] && restore_layout $DIR1 $saved_layout || - $LFS setstripe -d $DIR1 -} - -saved_layout=$(save_layout $DIR1) +save_layout_restore_at_exit $DIR1 $LFS setstripe -E $DOM_SIZE -L mdt -E EOF $DIR1 mkdir -p $MOUNT2 @@ -92,6 +82,44 @@ test_3() { } run_test 3 "Truncate over DoM size on different nodes" +test_4() { + local before=0 + local after=0 + + dd if=/dev/zero of=$DIR1/$tfile bs=2M count=1 + cancel_lru_locks mdc + + #define OBD_FAIL_MDC_GLIMPSE_DDOS 0x808 + $LCTL set_param fail_loc=0x80000808 + before=$(lctl get_param -n ldlm.namespaces.*mdc*.lock_count | + gawk '{cnt=cnt+$1} END{print cnt}') + for ((i=1; i < 100; i++)) + do + tail -n100 $DIR1/$tfile > /dev/null + stat -f $DIR2/$tfile > /dev/null + done + after=$(lctl get_param -n ldlm.namespaces.*mdc*.lock_count | + gawk '{cnt=cnt+$1} END{print cnt}') + [[ $((after - before)) -ge 20 ]] && + error "Too many locks found $((after - before))" + return 0 +} +run_test 4 "DoM: glimpse doesn't produce duplicated locks" + +test_6() { + $MULTIOP $DIR1/$tfile Oz40960w100_z200w100c & + MULTIPID=$! + + # let MULTIPID to create the file + sleep 1 + $MULTIOP $DIR2/$tfile oO_RDWR:Tw100c + kill -USR1 $MULTIPID + wait + $MULTIOP $DIR2/$tfile oO_RDWR:z400w100c + $CHECKSTAT -s 500 $DIR2/$tfile || error "wrong size" +} +run_test 6 "Race two writes, check file size" + test_fsx() { local file1=$DIR1/$tfile local file2=$DIR2/$tfile @@ -103,25 +131,20 @@ run_test fsx "Dual-mount fsx with DoM files" test_sanity() { - local SAVE_ONLY=$ONLY - - [ ! -f sanity.sh ] && skip_env "No sanity.sh skipping" && return - # XXX: to fix 45 - ONLY="36 39 40 41 42 43 46 56r 101e 119a 131 150 155a 155b 155c \ - 155d 207 241 251" OSC="mdc" DOM="yes" sh sanity.sh - ONLY=$SAVE_ONLY + # XXX: to fix 45. Add 42a, c when LU-9693 fixed. + # Add 42b when LU-6493 fixed + # Enable 39k when LU-10496 fixed + ONLY="36 39 40 41 42d 42e 43 46 56r 101e 119a 131 150 155a 155b 155c \ + 155d 207 241 251" \ + EXCEPT=39k OSC="mdc" DOM="yes" bash sanity.sh } run_test sanity "Run sanity with Data-on-MDT files" test_sanityn() { - local SAVE_ONLY=$ONLY - - [ ! -f sanity.sh ] && skip_env "No sanity.sh skipping" && return # XXX: to fix 60 ONLY="1 2 4 5 6 7 8 9 10 11 12 14 17 19 20 23 27 39 51a 51c 51d" \ - OSC="mdc" DOM="yes" sh sanityn.sh - ONLY=$SAVE_ONLY + OSC="mdc" DOM="yes" bash sanityn.sh } run_test sanityn "Run sanityn with Data-on-MDT files"