unlinkmany $DIR/$tdir/t- 1000
trap 0
[[ $OBJS -gt 0 ]] &&
- error "$OBJS objects created on OST-0. See $TLOG" || pass
+ error "$OBJS objects created on OST-0. See $TLOG" ||
+ rm -f $TLOG
}
run_test 27u "skip object creation on OSC w/o objects"
local ost_list=$(seq $first_ost $ost_step $last_ost)
local ost_range="$first_ost $last_ost $ost_step"
+ if ! combined_mgs_mds ; then
+ mount_mgs_client
+ fi
+
test_mkdir $DIR/$tdir
pool_add $POOL || error "pool_add failed"
pool_add_targets $POOL $ost_range || error "pool_add_targets failed"
error "llapi_layout_test failed"
destroy_test_pools || error "destroy test pools failed"
+
+ if ! combined_mgs_mds ; then
+ umount_mgs_client
+ fi
}
run_test 27D "validate llapi_layout API"
cp -p multiop $DIR/$tdir/multiop
MULTIOP_PROG=$DIR/$tdir/multiop multiop_bg_pause $TMP/$tfile.junk O_c ||
error "multiop open $TMP/$tfile.junk failed"
+ rm $TMP/$tfile.junk # delete junk file on close (not part of test)
MULTIOP_PID=$!
$MULTIOP $DIR/$tdir/multiop Oc && error "expected error, got success"
kill -USR1 $MULTIOP_PID || error "kill -USR1 PID $MULTIOP_PID failed"
cp -p multiop $DIR/$tdir/multiop
MULTIOP_PROG=$DIR/$tdir/multiop multiop_bg_pause $TMP/$tfile.junk O_c ||
error "multiop open $TMP/$tfile.junk failed"
+ rm $TMP/$tfile.junk # delete junk file on close (not part of test)
MULTIOP_PID=$!
$TRUNCATE $DIR/$tdir/multiop 0 && error "expected error, got success"
kill -USR1 $MULTIOP_PID || error "kill -USR1 PID $MULTIOP_PID failed"
check_mds_dmesg '"has reached"' ||
error_exit "reached message should be output"
- [ $has_warning -eq 0 ] &&
+ [ $has_warning = "false" ] &&
error_exit "warning message should be output"
dirsize=$(stat -c%s "$DIR/$tdir")
-type f \
-not -name force_lbug \
-not -name changelog_mask \
- -exec badarea_io '{}' \; &> /dev/null ||
+ -exec badarea_io '{}' \; ||
error "find $proc_dirs failed"
local facet
-type f \
-not -name force_lbug \
-not -name changelog_mask \
- -exec badarea_io '{}' \\\; &> /dev/null ||
+ -exec badarea_io '{}' \\\; ||
error "$facet find $facet_proc_dirs failed"
done
log "cache hits:: before: $BEFORE, after: $AFTER"
fi
- rm -f $file
restore_lustre_params < $p
- rm -f $p
+ rm -f $p $file
}
run_test 156 "Verification of tunables"
}
run_test 160e "changelog negative testing"
+cleanup_160f() {
+ trap 0
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0 fail_val=0
+ echo "Deregistering changelog client $CL_USER"
+ do_facet $SINGLEMDS $LCTL --device $MDT0 changelog_deregister $CL_USER
+ echo "Deregistering changelog client $CL_USER2"
+ do_facet $SINGLEMDS $LCTL --device $MDT0 changelog_deregister $CL_USER2
+ restore_lustre_params < $save_params
+ rm -f $save_params
+}
+
+test_160f() {
+ # do_facet $SINGLEMDS $LCTL set_param mdd.$MDT0.changelog_gc=1
+ # should be set by default
+
+ local CL_USERS="mdd.$MDT0.changelog_users"
+ local GET_CL_USERS="do_facet $SINGLEMDS $LCTL get_param -n $CL_USERS"
+ local save_params="$TMP/sanity-$TESTNAME.parameters"
+
+ save_lustre_params $SINGLEMDS \
+ "mdd.$MDT0.changelog_max_idle_time" > $save_params
+ save_lustre_params $SINGLEMDS \
+ "mdd.$MDT0.changelog_min_gc_interval" >> $save_params
+ save_lustre_params $SINGLEMDS \
+ "mdd.$MDT0.changelog_min_free_cat_entries" >> $save_params
+
+ trap cleanup_160f EXIT
+
+ # Create a user
+ CL_USER=$(do_facet $SINGLEMDS $LCTL --device $MDT0 \
+ changelog_register -n)
+ echo "Registered as changelog user $CL_USER"
+ CL_USER2=$(do_facet $SINGLEMDS $LCTL --device $MDT0 \
+ changelog_register -n)
+ echo "Registered as changelog user $CL_USER2"
+ $GET_CL_USERS | grep -q $CL_USER ||
+ error "User $CL_USER not found in changelog_users"
+ $GET_CL_USERS | grep -q $CL_USER2 ||
+ error "User $CL_USER2 not found in changelog_users"
+
+ # generate some changelogs to accumulate
+ mkdir -p $DIR/$tdir || error "mkdir $tdir failed"
+ touch $DIR/$tdir/$tfile || error "touch $DIR/$tdir/$tfile failed"
+ touch $DIR/$tdir/${tfile}2 || error "touch $DIR/$tdir/${tfile}2 failed"
+ rm -f $DIR/$tdir/$tfile || error "rm -f $tfile failed"
+
+ # check changelogs have been generated
+ nbcl=$($LFS changelog $MDT0 | wc -l)
+ [[ $nbcl -eq 0 ]] && error "no changelogs found"
+
+ do_facet $SINGLEMDS $LCTL set_param \
+ mdd.$MDT0.changelog_max_idle_time=10
+ do_facet $SINGLEMDS $LCTL set_param \
+ mdd.$MDT0.changelog_min_gc_interval=2
+ do_facet $SINGLEMDS $LCTL set_param \
+ mdd.$MDT0.changelog_min_free_cat_entries=3
+
+ # simulate changelog catalog almost full
+#define OBD_FAIL_CAT_FREE_RECORDS 0x1313
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0x1313
+ do_facet $SINGLEMDS $LCTL set_param fail_val=3
+
+ sleep 6
+ USER_REC1=$($GET_CL_USERS | awk "\$1 == \"$CL_USER\" {print \$2}")
+ $LFS changelog_clear $MDT0 $CL_USER $(($USER_REC1 + 2))
+ USER_REC2=$($GET_CL_USERS | awk "\$1 == \"$CL_USER\" {print \$2}")
+ echo "verifying user clear: $(( $USER_REC1 + 2 )) == $USER_REC2"
+ [ $USER_REC2 == $(($USER_REC1 + 2)) ] ||
+ error "user index expected $(($USER_REC1 + 2)) is $USER_REC2"
+ sleep 5
+
+ # generate one more changelog to trigger fail_loc
+ rm -rf $DIR/$tdir || error "rm -rf $tdir failed"
+
+ # ensure gc thread is done
+ wait_update_facet $SINGLEMDS \
+ "ps -e -o comm= | grep chlg_gc_thread" "" 20
+
+ # check user still registered
+ $GET_CL_USERS | grep -q $CL_USER ||
+ error "User $CL_USER not found in changelog_users"
+ # check user2 unregistered
+ $GET_CL_USERS | grep -q $CL_USER2 &&
+ error "User $CL_USER2 still found in changelog_users"
+
+ # check changelogs are present and starting at $USER_REC2 + 1
+ FIRST_REC=$($LFS changelog $MDT0 | head -n1 | awk '{print $1}')
+ echo "verifying min purge: $(( $USER_REC2 + 1 )) == $FIRST_REC"
+ [ $FIRST_REC == $(($USER_REC2 + 1)) ] ||
+ error "first index should be $(($USER_REC2 + 1)) is $FIRST_REC"
+
+ cleanup_160f
+}
+run_test 160f "changelog garbage collect (timestamped users)"
+
+test_160g() {
+ # do_facet $SINGLEMDS $LCTL set_param mdd.$MDT0.changelog_gc=1
+ # should be set by default
+
+ local CL_USERS="mdd.$MDT0.changelog_users"
+ local GET_CL_USERS="do_facet $SINGLEMDS $LCTL get_param -n $CL_USERS"
+ local save_params="$TMP/sanity-$TESTNAME.parameters"
+
+ save_lustre_params $SINGLEMDS \
+ "mdd.$MDT0.changelog_max_idle_indexes" > $save_params
+ save_lustre_params $SINGLEMDS \
+ "mdd.$MDT0.changelog_min_gc_interval" >> $save_params
+ save_lustre_params $SINGLEMDS \
+ "mdd.$MDT0.changelog_min_free_cat_entries" >> $save_params
+
+ trap cleanup_160f EXIT
+
+#define OBD_FAIL_TIME_IN_CHLOG_USER 0x1314
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0x1314
+
+ # Create a user
+ CL_USER=$(do_facet $SINGLEMDS $LCTL --device $MDT0 \
+ changelog_register -n)
+ echo "Registered as changelog user $CL_USER"
+ CL_USER2=$(do_facet $SINGLEMDS $LCTL --device $MDT0 \
+ changelog_register -n)
+ echo "Registered as changelog user $CL_USER2"
+ $GET_CL_USERS | grep -q $CL_USER ||
+ error "User $CL_USER not found in changelog_users"
+ $GET_CL_USERS | grep -q $CL_USER2 ||
+ error "User $CL_USER2 not found in changelog_users"
+
+ # generate some changelogs to accumulate
+ mkdir -p $DIR/$tdir || error "mkdir $tdir failed"
+ touch $DIR/$tdir/$tfile || error "touch $DIR/$tdir/$tfile failed"
+ touch $DIR/$tdir/${tfile}2 || error "touch $DIR/$tdir/${tfile}2 failed"
+ rm -f $DIR/$tdir/$tfile || error "rm -f $tfile failed"
+
+ # check changelogs have been generated
+ nbcl=$($LFS changelog $MDT0 | wc -l)
+ [[ $nbcl -eq 0 ]] && error "no changelogs found"
+
+ do_facet $SINGLEMDS $LCTL set_param \
+ mdd.$MDT0.changelog_max_idle_indexes=$((nbcl - 1))
+ do_facet $SINGLEMDS $LCTL set_param \
+ mdd.$MDT0.changelog_min_gc_interval=2
+ do_facet $SINGLEMDS $LCTL set_param \
+ mdd.$MDT0.changelog_min_free_cat_entries=3
+
+ # simulate changelog catalog almost full
+#define OBD_FAIL_CAT_FREE_RECORDS 0x1313
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0x1313
+ do_facet $SINGLEMDS $LCTL set_param fail_val=3
+
+ USER_REC1=$($GET_CL_USERS | awk "\$1 == \"$CL_USER\" {print \$2}")
+ $LFS changelog_clear $MDT0 $CL_USER $(($USER_REC1 + 3))
+ USER_REC2=$($GET_CL_USERS | awk "\$1 == \"$CL_USER\" {print \$2}")
+ echo "verifying user clear: $(( $USER_REC1 + 3 )) == $USER_REC2"
+ [ $USER_REC2 == $(($USER_REC1 + 3)) ] ||
+ error "user index expected $(($USER_REC1 + 3)) is $USER_REC2"
+
+ # generate one more changelog to trigger fail_loc
+ rm -rf $DIR/$tdir || error "rm -rf $tdir failed"
+
+ # ensure gc thread is done
+ wait_update_facet $SINGLEMDS \
+ "ps -e -o comm= | grep chlg_gc_thread" "" 20
+
+ # check user still registered
+ $GET_CL_USERS | grep -q $CL_USER ||
+ error "User $CL_USER not found in changelog_users"
+ # check user2 unregistered
+ $GET_CL_USERS | grep -q $CL_USER2 &&
+ error "User $CL_USER2 still found in changelog_users"
+
+ # check changelogs are present and starting at $USER_REC2 + 1
+ FIRST_REC=$($LFS changelog $MDT0 | head -n1 | awk '{print $1}')
+ echo "verifying min purge: $(( $USER_REC2 + 1 )) == $FIRST_REC"
+ [ $FIRST_REC == $(($USER_REC2 + 1)) ] ||
+ error "first index should be $(($USER_REC2 + 1)) is $FIRST_REC"
+
+ cleanup_160f
+}
+run_test 160g "changelog garbage collect (old users)"
+
test_161a() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
test_mkdir -c1 $DIR/$tdir
local test_path=$POOL_ROOT/$POOL_DIR_NAME
local file_dir=$POOL_ROOT/file_tst
local subdir=$test_path/subdir
-
local rc=0
+
+ if ! combined_mgs_mds ; then
+ mount_mgs_client
+ fi
+
while : ; do
# former test_200a test_200b
pool_add $POOL || { rc=$? ; break; }
pool_create_files $POOL $file_dir $files "$ost_list" \
|| { rc=$? ; break; }
# former test_200g test_200h
- pool_lfs_df $POOL || { rc=$? ; break; }
+ pool_lfs_df $POOL || { rc=$? ; break; }
pool_file_rel_path $POOL $test_path || { rc=$? ; break; }
# former test_201a test_201b test_201c
local f=$test_path/$tfile
pool_remove_all_targets $POOL $f || { rc=$? ; break; }
- pool_remove $POOL $f || { rc=$? ; break; }
+ pool_remove $POOL $f || { rc=$? ; break; }
break
done
destroy_test_pools
+
+ if ! combined_mgs_mds ; then
+ umount_mgs_client
+ fi
return $rc
}
run_test 200 "OST pools"
$LFS df -i
+ if ! combined_mgs_mds ; then
+ mount_mgs_client
+ fi
+
do_facet ost$((OSTIDX + 1)) lctl set_param fail_val=-1
#define OBD_FAIL_OST_ENOINO 0x229
do_facet ost$((OSTIDX + 1)) lctl set_param fail_loc=0x229
do_facet ost$((OSTIDX + 1)) lctl set_param fail_val=0
do_facet ost$((OSTIDX + 1)) lctl set_param fail_loc=0
- do_facet mgs $LCTL pool_remove $FSNAME.$TESTNAME $OST || return 4
- do_facet mgs $LCTL pool_destroy $FSNAME.$TESTNAME || return 5
+ do_facet mgs $LCTL pool_remove $FSNAME.$TESTNAME $OST ||
+ error "$LCTL pool_remove $FSNAME.$TESTNAME $OST failed"
+ do_facet mgs $LCTL pool_destroy $FSNAME.$TESTNAME ||
+ error "$LCTL pool_destroy $FSNAME.$TESTNAME failed"
echo "unlink $MDSOBJS files @$next_id..."
- unlinkmany $DIR/$tdir/f $MDSOBJS || return 6
+ unlinkmany $DIR/$tdir/f $MDSOBJS || error "unlinkmany failed"
+
+ if ! combined_mgs_mds ; then
+ umount_mgs_client
+ fi
}
run_test 220 "preallocated MDS objects still used if ENOSPC from OST"
$GETSTRIPE -v $DIR/$tfile
local pattern=$($GETSTRIPE -L $DIR/$tfile)
- [ X"$pattern" = X"80000001" ] || error "pattern error ($pattern)"
+ [ X"$pattern" = X"released" ] || error "pattern error ($pattern)"
local stripe_count=$($GETSTRIPE -c $DIR/$tfile) || error "getstripe"
[ $stripe_count -eq 2 ] || error "stripe count not 2 ($stripe_count)"
}
run_test 246 "Read file of size 4095 should return right length"
+cleanup_247() {
+ local submount=$1
+
+ trap 0
+ umount_client $submount
+ rmdir $submount
+}
+
test_247a() {
lctl get_param -n mdc.$FSNAME-MDT0000*.import |
grep -q subtree ||
mkdir -p $submount || error "mkdir $submount failed"
FILESET="$FILESET/$tdir" mount_client $submount ||
error "mount $submount failed"
+ trap "cleanup_247 $submount" EXIT
echo foo > $submount/$tfile || error "write $submount/$tfile failed"
[ $(cat $MOUNT/$tdir/$tfile) = "foo" ] ||
error "read $MOUNT/$tdir/$tfile failed"
- umount_client $submount || error "umount $submount failed"
- rmdir $submount
+ cleanup_247 $submount
}
run_test 247a "mount subdir as fileset"
mkdir -p $MOUNT/$tdir/dir1
mkdir -p $submount || error "mkdir $submount failed"
+ trap "cleanup_247 $submount" EXIT
FILESET="$FILESET/$tdir" mount_client $submount ||
error "mount $submount failed"
local fid=$($LFS path2fid $MOUNT/)
$LFS fid2path $submount $fid && error "fid2path should fail"
- umount_client $submount || error "umount $submount failed"
- rmdir $submount
+ cleanup_247 $submount
}
run_test 247c "running fid2path outside root"
mkdir -p $submount || error "mkdir $submount failed"
FILESET="$FILESET/$tdir" mount_client $submount ||
error "mount $submount failed"
+ trap "cleanup_247 $submount" EXIT
local fid=$($LFS path2fid $submount/dir1)
$LFS fid2path $submount $fid || error "fid2path should succeed"
- umount_client $submount || error "umount $submount failed"
- rmdir $submount
+ cleanup_247 $submount
}
run_test 247d "running fid2path inside root"
# small read with fast read enabled
$LCTL set_param -n llite.*.fast_read=1
local t_fast=$(dd if=$DIR/$tfile of=/dev/null bs=4k 2>&1 |
- awk '/copied/ { print $6 }')
-
+ egrep -o '([[:digit:]\.\,e-]+) s' | cut -d's' -f1 |
+ sed -e 's/,/./' -e 's/[eE]+*/\*10\^/')
# small read with fast read disabled
$LCTL set_param -n llite.*.fast_read=0
local t_slow=$(dd if=$DIR/$tfile of=/dev/null bs=4k 2>&1 |
- awk '/copied/ { print $6 }')
+ egrep -o '([[:digit:]\.\,e-]+) s' | cut -d's' -f1 |
+ sed -e 's/,/./' -e 's/[eE]+*/\*10\^/')
# verify that fast read is 4 times faster for cache read
[ $(bc <<< "4 * $t_fast < $t_slow") -eq 1 ] ||
# 1k non-cache read
cancel_lru_locks osc
local t_1k=$(dd if=$DIR/$tfile of=/dev/null bs=1k 2>&1 |
- awk '/copied/ { print $6 }')
+ egrep -o '([[:digit:]\.\,e-]+) s' | cut -d's' -f1 |
+ sed -e 's/,/./' -e 's/[eE]+*/\*10\^/')
# 1M non-cache read
cancel_lru_locks osc
local t_1m=$(dd if=$DIR/$tfile of=/dev/null bs=1k 2>&1 |
- awk '/copied/ { print $6 }')
+ egrep -o '([[:digit:]\.\,e-]+) s' | cut -d's' -f1 |
+ sed -e 's/,/./' -e 's/[eE]+*/\*10\^/')
# verify that big IO is not 4 times faster than small IO
[ $(bc <<< "4 * $t_1k >= $t_1m") -eq 1 ] ||
osp.$mdtosc_proc1.reserved_mb_low)
echo "prev high watermark $last_wm_h, prev low watermark $last_wm_l"
+ if ! combined_mgs_mds ; then
+ mount_mgs_client
+ fi
create_pool $FSNAME.$TESTNAME || error "Pool creation failed"
do_facet mgs $LCTL pool_add $FSNAME.$TESTNAME $ost_name ||
error "Adding $ost_name to pool failed"
error "Remove $ost_name from pool failed"
do_facet mgs $LCTL pool_destroy $FSNAME.$TESTNAME ||
error "Pool destroy fialed"
+
+ if ! combined_mgs_mds ; then
+ umount_mgs_client
+ fi
}
run_test 253 "Check object allocation limit"
local lowest_speedup=20
if [ ${average_cache%.*} -lt $lowest_speedup ]; then
- echo "Speedup with OSS cached read less than $lowest_speedup%, "
+ echo "Speedup with OSS cached read less than $lowest_speedup%," \
"got $average_cache%. Skipping ladvise willread check."
return 0
fi
local difference
local i
local rc
+
+ [ $(lustre_version_code ost1) -lt $(version_code 2.10.50) ] &&
+ skip "lustre < 2.10.53 does not support lockahead" && return
+
test_mkdir -p $DIR/$tdir
$SETSTRIPE -i 0 $DIR/$tdir
ldlm.namespaces.$FSNAME-OST0000*osc-f*.lock_unused_count)
difference="$((new_count - count))"
- # Test 15 output is divided by 1000 to map down to valid return
+ # Test 15 output is divided by 100 to map down to valid return
if [ $i -eq 15 ]; then
- rc="$((rc * 1000))"
+ rc="$((rc * 100))"
fi
if [ $difference -ne $rc ]; then
### Data-on-MDT sanity tests ###
test_270a() {
+
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
# create DoM file
local dom=$DIR/$tdir/dom_file
local tmp=$DIR/$tdir/tmp_file
$LFS setstripe -E 1M -L mdt $dom ||
error "Can't create DoM layout"
- [ $($LFS getstripe -L $dom) == 100 ] || error "bad pattern"
+ [ $($LFS getstripe -L $dom) == "mdt" ] || error "bad pattern"
[ $($LFS getstripe -c $dom) == 0 ] || error "bad stripe count"
[ $($LFS getstripe -S $dom) == 1048576 ] || error "bad stripe size"
run_test 270a "DoM: basic functionality tests"
test_270b() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
local dom=$DIR/$tdir/dom_file
local max_size=1048576
run_test 270b "DoM: maximum size overflow checks for DoM-only file"
test_270c() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
mkdir -p $DIR/$tdir
$LFS setstripe -E 1024K -L mdt $DIR/$tdir
# check files inherit DoM EA
touch $DIR/$tdir/first
- [ $($GETSTRIPE -L $DIR/$tdir/first) == 100 ] ||
+ [ $($GETSTRIPE -L $DIR/$tdir/first) == "mdt" ] ||
error "bad pattern"
[ $($LFS getstripe -c $DIR/$tdir/first) == 0 ] ||
error "bad stripe count"
# check directory inherits DoM EA and uses it as default
mkdir $DIR/$tdir/subdir
touch $DIR/$tdir/subdir/second
- [ $($LFS getstripe -L $DIR/$tdir/subdir/second) == 100 ] ||
+ [ $($LFS getstripe -L $DIR/$tdir/subdir/second) == "mdt" ] ||
error "bad pattern in sub-directory"
[ $($LFS getstripe -c $DIR/$tdir/subdir/second) == 0 ] ||
error "bad stripe count in sub-directory"
run_test 270c "DoM: DoM EA inheritance tests"
test_270d() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
mkdir -p $DIR/$tdir
$LFS setstripe -E 1024K -L mdt $DIR/$tdir
touch $DIR/$tdir/subdir/f2
[ $($LFS getstripe -c $DIR/$tdir/subdir/f2) == 1 ] ||
error "wrong default striping in file 2"
- [ $($LFS getstripe -L $DIR/$tdir/subdir/f2) == 1 ] ||
+ [ $($LFS getstripe -L $DIR/$tdir/subdir/f2) == "raid0" ] ||
error "bad pattern in file 2"
return 0
}
run_test 270d "DoM: change striping from DoM to RAID0"
test_270e() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
mkdir -p $DIR/$tdir/dom
mkdir -p $DIR/$tdir/norm
DOMFILES=20
run_test 270e "DoM: lfs find with DoM files test"
test_270f() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
local mdtname=${FSNAME}-MDT0000-mdtlov
local dom=$DIR/$tdir/dom_file
local dom_limit_saved=$(do_facet mds1 $LCTL get_param -n \
run_test 270f "DoM: maximum DoM stripe size checks"
test_271a() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
local dom=$DIR/$tdir/dom
mkdir -p $DIR/$tdir
run_test 271a "DoM: data is cached for read after write"
test_271b() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
local dom=$DIR/$tdir/dom
mkdir -p $DIR/$tdir
run_test 271b "DoM: no glimpse RPC for stat (DoM only file)"
test_271ba() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
local dom=$DIR/$tdir/dom
mkdir -p $DIR/$tdir
# test to be enabled with lock_convert
skip "skipped until lock convert will be implemented" && return
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.55) ] &&
+ skip "Need MDS version at least 2.10.55" && return
+
local dom=$DIR/$tdir/dom
mkdir -p $DIR/$tdir
}
run_test 313 "io should fail after last_rcvd update fail"
+test_314() {
+ $SETSTRIPE -c 2 -i 0 $DIR/$tfile || error "setstripe failed"
+ do_facet ost1 "$LCTL set_param fail_loc=0x720"
+ rm -f $DIR/$tfile
+ wait_delete_completed
+ do_facet ost1 "$LCTL set_param fail_loc=0"
+}
+run_test 314 "OSP shouldn't fail after last_rcvd update failure"
+
test_fake_rw() {
local read_write=$1
if [ "$read_write" = "write" ]; then
wait
- [ `cat $tfile` -gt 0 ] || error "wrong nlink count: `cat $tfile`"
+ [ $(cat $tfile) -gt 0 ] || error "wrong nlink count: $(cat $tfile)"
rm -f $tfile $file1 $file2
}
local def_stripe_size=$($GETSTRIPE -S $MOUNT)
local def_stripe_offset=$($GETSTRIPE -i $MOUNT)
local def_pool=$($GETSTRIPE -p $MOUNT)
-
local test_pool=$TESTNAME
+
+ if ! combined_mgs_mds ; then
+ mount_mgs_client
+ fi
pool_add $test_pool || error "pool_add failed"
pool_add_targets $test_pool 0 $(($OSTCOUNT - 1)) 1 ||
error "pool_add_targets failed"
local f=$DIR/$tdir/$tfile
pool_remove_all_targets $test_pool $f
pool_remove $test_pool $f
+
+ if ! combined_mgs_mds ; then
+ umount_mgs_client
+ fi
}
run_test 406 "DNE support fs default striping"