X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=inline;f=lustre%2Ftests%2Fsanityn.sh;h=aaf9035ba6fc4707528aa5f0aaae9f070180cb2f;hb=eb9bc557a38c97c4c11a49aa4fbf2ca9ff07df7f;hp=50565a7184bfdc672554cc5ad189fc5e70c99267;hpb=6e94a9832e700fda3029edff4586646220c50679;p=fs%2Flustre-release.git diff --git a/lustre/tests/sanityn.sh b/lustre/tests/sanityn.sh index 50565a7..aaf9035 100644 --- a/lustre/tests/sanityn.sh +++ b/lustre/tests/sanityn.sh @@ -11,9 +11,6 @@ ALWAYS_EXCEPT=" 14b 18c 19 22 28 29 35 grep -q 'Enterprise Server 10' /etc/SuSE-release 2> /dev/null && ALWAYS_EXCEPT="$ALWAYS_EXCEPT 11 14" || true -# Tests that fail on uml -[ "$UML" = "true" ] && EXCEPT="$EXCEPT 7" - # It will be ported soon. EXCEPT="$EXCEPT 22" @@ -43,7 +40,11 @@ init_test_env $@ . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} init_logging -[ "$SLOW" = "no" ] && EXCEPT_SLOW="12 23 33a" +[ $(facet_fstype $SINGLEMDS) = "zfs" ] && +# bug number for skipped test: LU-2840 LU-2776 + ALWAYS_EXCEPT="$ALWAYS_EXCEPT 21 51a" + +[ "$SLOW" = "no" ] && EXCEPT_SLOW="33a" FAIL_ON_ERROR=false @@ -471,18 +472,18 @@ run_test 20 "test extra readahead page left in cache ====" cleanup_21() { trap 0 - umount $DIR1/d21 + umount $DIR1/$tdir } test_21() { # Bug 5907 - test_mkdir $DIR1/d21 - mount /etc $DIR1/d21 --bind || error "mount failed" # Poor man's mount. + test_mkdir $DIR1/$tdir + mount /etc $DIR1/$tdir --bind || error "mount failed" # Poor man's mount. trap cleanup_21 EXIT - rmdir -v $DIR1/d21 && error "Removed mounted directory" - rmdir -v $DIR2/d21 && echo "Removed mounted directory from another mountpoint, needs to be fixed" - test -d $DIR1/d21 || error "Mounted directory disappeared" + rmdir -v $DIR1/$tdir && error "Removed mounted directory" + rmdir -v $DIR2/$tdir && echo "Removed mounted directory from another mountpoint, needs to be fixed" + test -d $DIR1/$tdir || error "Mounted directory disappeared" cleanup_21 - test -d $DIR2/d21 || test -d $DIR1/d21 && error "Removed dir still visible after umount" + test -d $DIR2/$tdir || test -d $DIR1/$tdir && error "Removed dir still visible after umount" true } run_test 21 " Try to remove mountpoint on another dir ====" @@ -686,16 +687,14 @@ test_29() { # bug 10999 #bug 11549 - permanently turn test off in b1_5 run_test 29 "lock put race between glimpse and enqueue =========" -test_30() { #bug #11110 +test_30() { #bug #11110, LU-2523 test_mkdir -p $DIR1/$tdir cp -f /bin/bash $DIR1/$tdir/bash /bin/sh -c 'sleep 1; rm -f $DIR2/$tdir/bash; cp /bin/bash $DIR2/$tdir' & - local err=$($DIR1/$tdir/bash -c 'sleep 2; - openfile -f O_RDONLY /proc/$$/exe >& /dev/null; echo $?') + $DIR1/$tdir/bash -c 'sleep 2; + openfile -f O_RDONLY /proc/$$/exe >& /dev/null; echo $?' wait - [ $err -ne 116 ] && - error_ignore 12900 "return code ($err) != -ESTALE" && return true } @@ -830,11 +829,10 @@ print_jbd_stat () { local stat=0 for mds in ${mdts//,/ }; do varsvc=${mds}_svc - dev=$(basename $(do_facet $mds lctl get_param -n osd*.${!varsvc}.mntdev)) - val=$(do_facet $mds "procfile=/proc/fs/jbd/$dev/info; -[ -f \\\$procfile ] || procfile=/proc/fs/jbd2/$dev/info; -[ -f \\\$procfile ] || procfile=/proc/fs/jbd2/${dev}\:\\\*/info; -cat \\\$procfile | head -1;") + dev=$(basename $(do_facet $mds "lctl get_param -n osd*.${!varsvc}.mntdev|\ + xargs readlink -f" )) + val=$(do_facet $mds "cat /proc/fs/jbd*/${dev}{,:*,-*}/info 2>/dev/null|\ + head -1") val=${val%% *}; stat=$(( stat + val)) done @@ -845,18 +843,19 @@ cat \\\$procfile | head -1;") test_33a() { remote_mds_nodsh && skip "remote MDS with nodsh" && return - [ -n "$CLIENTS" ] || { skip "Need two or more clients" && return 0; } - [ $CLIENTCOUNT -ge 2 ] || \ - { skip "Need two or more clients, have $CLIENTCOUNT" && return 0; } + [ -z "$CLIENTS" ] && skip "Need two or more clients, have $CLIENTS" && return 0 + [ $CLIENTCOUNT -lt 2 ] && + skip "Need two or more clients, have $CLIENTCOUNT" && return 0 local nfiles=${TEST33_NFILES:-10000} local param_file=$TMP/$tfile-params + local fstype=$(facet_fstype $SINGLEMDS) save_lustre_params $(comma_list $(mdts_nodes)) "mdt.*.commit_on_sharing" > $param_file local COS - local jbdold - local jbdnew + local jbdold="N/A" + local jbdnew="N/A" local jbd for COS in 0 1; do @@ -866,13 +865,13 @@ test_33a() { for i in 1 2 3; do do_nodes $CLIENT1,$CLIENT2 "mkdir -p $DIR1/$tdir-\\\$(hostname)-$i" - jbdold=$(print_jbd_stat) + [ $fstype = ldiskfs ] && jbdold=$(print_jbd_stat) echo "=== START createmany old: $jbdold transaction" local elapsed=$(do_and_time "do_nodes $CLIENT1,$CLIENT2 createmany -o $DIR1/$tdir-\\\$(hostname)-$i/f- -r $DIR2/$tdir-\\\$(hostname)-$i/f- $nfiles > /dev/null 2>&1") - jbdnew=$(print_jbd_stat) - jbd=$(( jbdnew - jbdold )) + [ $fstype = ldiskfs ] && jbdnew=$(print_jbd_stat) + [ $fstype = ldiskfs ] && jbd=$(( jbdnew - jbdold )) echo "=== END createmany new: $jbdnew transaction : $jbd transactions nfiles $nfiles time $elapsed COS=$COS" - avgjbd=$(( avgjbd + jbd )) + [ $fstype = ldiskfs ] && avgjbd=$(( avgjbd + jbd )) avgtime=$(( avgtime + elapsed )) done eval cos${COS}_jbd=$((avgjbd / 3)) @@ -960,10 +959,21 @@ get_ost_lock_timeouts() { echo $locks } +cleanup_34() { + local i + trap 0 + do_nodes $(comma_list $(osts_nodes)) \ + "lctl set_param -n fail_loc=0 2>/dev/null || true" + for i in $(seq $OSTCOUNT); do + wait_osc_import_state client ost$i FULL + done +} + test_34() { #16129 local OPER local lock_in local lock_out + trap cleanup_34 EXIT RETURN for OPER in notimeout timeout ; do rm $DIR1/$tfile 2>/dev/null lock_in=$(get_ost_lock_timeouts) @@ -1002,6 +1012,7 @@ test_34() { #16129 fi fi done + cleanup_34 } run_test 34 "no lock timeout under IO" @@ -2273,7 +2284,7 @@ test_51a() { # open and sleep 2 seconds then read $MULTIOP $DIR2/$tfile o_2r${filesize}c & local pid=$! - sleep 0.1 + sleep 1 # create the layout of testing file dd if=$origfile of=$DIR1/$tfile conv=notrunc > /dev/null @@ -2298,7 +2309,7 @@ test_51b() { $LCTL set_param fail_loc=0x1404 stat -c %s $DIR2/$tfile |tee $tmpfile & local pid=$! - sleep 0.1 + sleep 1 # create layout of testing file dd if=/dev/zero of=$DIR1/$tfile bs=1k count=1 conv=notrunc > /dev/null @@ -2323,7 +2334,7 @@ test_51c() { echo "Setting layout ..." $LFS setstripe -c $OSTCOUNT $DIR1/$tfile & pid=$! - sleep 0.1 + sleep 1 # get layout of this file should wait until dd is finished local stripecnt=`$LFS getstripe -c $DIR2/$tfile` @@ -2382,7 +2393,7 @@ test_60() { } run_test 60 "Verify data_version behaviour" -test_70() { +test_70a() { local test_dir=$tdir/test_dir mkdir -p $DIR1/$tdir @@ -2398,7 +2409,26 @@ test_70() { cd $DIR2/$tdir || error "exit directory" } -run_test 70 "cd directory && rm directory" +run_test 70a "cd directory && rm directory" + +test_70b() { # LU-2781 + local i + mkdir -p $DIR1/$tdir + + touch $DIR1/$tdir/file + for ((i = 0; i < 32; i++)); do + $LFS rm_entry $DIR1/$tdir/non_existent_dir &>/dev/null + done + rm $DIR1/$tdir/file || error "cannot remove file after rm_entry" + + touch $DIR1/$tdir/file + $LFS mkdir -i0 $DIR1/$tdir/test_dir + $LFS rm_entry $DIR1/$tdir/test_dir &>/dev/null + rm -rf $DIR1/$tdir/test_dir || + error "cannot remove directory after rm_entry" + rm $DIR1/$tdir/file || error "cannot remove file after rm_entry" +} +run_test 70b "remove files after calling rm_entry" log "cleanup: ======================================================"