X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fsanity-hsm.sh;h=0324adfad581f3dacf58b9920de9b5f9268f0580;hb=a6b3faffeaea7abbef389ad5296880a522a13460;hp=7f5d893cb7f64d2de878d5c0526e8033d3be5ed4;hpb=fa2cfb49decf3d897f63023c998a23fd98c5c3ea;p=fs%2Flustre-release.git diff --git a/lustre/tests/sanity-hsm.sh b/lustre/tests/sanity-hsm.sh index 7f5d893..0324adf 100755 --- a/lustre/tests/sanity-hsm.sh +++ b/lustre/tests/sanity-hsm.sh @@ -1448,6 +1448,78 @@ test_12s() { } run_test 12s "race between restore requests" +test_12t() { + copytool setup + + mkdir_on_mdt0 $DIR/$tdir + + local file=$DIR/$tdir/$tfile + local fid=$(copy_file /etc/hosts $file) + local n=32 + + $LFS hsm_archive -a $HSM_ARCHIVE_NUMBER $file || + error "failed to HSM archive $file" + wait_request_state $fid ARCHIVE SUCCEED + rm -f $file || error "failed to rm $file" + + copytool import $fid $file + check_hsm_flags $file "0x0000000d" + + local -a pids + + for ((i=0; i < $n; i++)); do + cat $file > /dev/null & + pids[$i]=$! + done + + for ((i=0; i < $n; i++));do + wait ${pids[$i]} || error "$?: failed to read pid=${pids[$i]}" + done +} +run_test 12t "Multiple parallel reads for a HSM imported file" + +test_12u() { + local dir=$DIR/$tdir + local n=10 + local t=32 + + copytool setup + mkdir_on_mdt0 $dir || error "failed to mkdir $dir" + + local -a pids + local -a fids + + for ((i=0; i<$n; i++)); do + fids[$i]=$(copy_file /etc/hosts $dir/$tfile.$i) + $LFS hsm_archive -a $HSM_ARCHIVE_NUMBER $dir/$tfile.$i || + error "failed to HSM archive $dir/$tfile.$i" + done + + for ((i=0; i<$n; i++)); do + wait_request_state ${fids[$i]} ARCHIVE SUCCEED + rm $dir/$tfile.$i || error "failed to rm $dir/$tfile.$i" + done + + for ((i=0; i<$n; i++)); do + copytool import ${fids[$i]} $dir/$tfile.$i + check_hsm_flags $dir/$tfile.$i "0x0000000d" + done + + for ((i=0; i<$n; i++)); do + for ((j=0; j<$t; j++)); do + cat $dir/$tfile.$i > /dev/null & + pids[$((i * t + j))]=$! + done + done + + local pid + + for pid in "${pids[@]}"; do + wait $pid || error "$pid: failed to cat file: $?" + done +} +run_test 12u "Multiple reads on multiple HSM imported files in parallel" + test_13() { local -i i j k=0 for i in {1..10}; do