LUSTRE=${LUSTRE:-$(dirname $0)/..}
. $LUSTRE/tests/test-framework.sh
-init_test_env $@
+init_test_env "$@"
init_logging
ALWAYS_EXCEPT="$SANITY_HSM_EXCEPT "
}
run_test 12r "lseek restores released file"
+test_12s() {
+ local f=$DIR/$tdir/$tfile
+ local fid
+ local pid1 pid2
+
+ (( MDS1_VERSION >= $(version_code 2.15.50) )) ||
+ skip "Need MDS version newer than 2.15.50"
+
+ # test needs a running copytool
+ copytool setup
+
+ mkdir_on_mdt0 $DIR/$tdir
+ fid=$(copy_file /etc/hosts $f)
+
+ $LFS hsm_archive $f || error "archive of $f failed"
+ wait_request_state $fid ARCHIVE SUCCEED
+ $LFS hsm_release $f || error "release of $f failed"
+
+#define OBD_FAIL_ONCE|OBD_FAIL_MDS_HSM_RESTORE_RACE 0x8000018b
+ do_facet mds1 $LCTL set_param fail_loc=0x8000018b
+ cat $f > /dev/null & pid1=$!
+ cat $f > /dev/null & pid2=$!
+
+ wait $pid1 || error "cat process 1 fail (pid: $pid1)"
+ wait $pid2 || error "cat process 2 fail (pid: $pid2)"
+
+ # Race exists if more than 1 restore requests is registered
+ assert_request_count $fid RESTORE 1
+}
+run_test 12s "race between restore requests"
+
test_13() {
local -i i j k=0
for i in {1..10}; do
local sleep=1
echo -n "Expecting a progress update within $progress_timeout seconds... "
- while [ true ]; do
+ while true; do
RESULT=$(do_node $(facet_active_host $mds) "$cmd")
if [ -n "$RESULT" ] && [ "$RESULT" -gt 0 ]; then
echo "$RESULT bytes copied in $WAIT seconds."
run_test 103 "Purge all requests"
test_103a() {
+ (( MDS1_VERSION >= $(version_code 2.14.56) )) ||
+ skip "Need MDS version at least 2.14.56"
+
cdt_clear_non_blocking_restore
# test needs a running copytool
local -a fids=()
local i
+ local rpcs_inflight=$($LCTL get_param -n \
+ "mdc.$(facet_svc mds1)*.max_rpcs_in_flight" |
+ head -n1)
mkdir_on_mdt0 $DIR/$tdir
- for i in {0..9}; do
+ for ((i=0; i < rpcs_inflight; i++)); do
fids+=( $(copy_file /etc/passwd $DIR/$tdir/${tfile}_$i) )
done
$LFS hsm_archive --archive $HSM_ARCHIVE_NUMBER $DIR/$tdir/*
[ -n "$nid" ] || error "nid is empty"
echo "Got NID $nid"
[ -n "$nid" ] && [[ "${CLIENT_NIDS[*]}" =~ $nid ]] ||
- error "nid '$nid' does not match any NID ${CLIENT_NIDS[@]}"
+ error "nid '$nid' does not match any NID ${CLIENT_NIDS[*]}"
}
run_test 606 "llog_reader groks changelog fields"