MCREATE=${MCREATE:-mcreate}
OPENFILE=${OPENFILE:-openfile}
OPENUNLINK=${OPENUNLINK:-openunlink}
-TRUNCATE=${TRUNCATE:-truncate}
export TMP=${TMP:-/tmp}
MOUNT_2=${MOUNT_2:-"yes"}
CHECK_GRANT=${CHECK_GRANT:-"yes"}
[ "$SLOW" = "no" ] && EXCEPT_SLOW="12 16 23 33a"
-SANITYLOG=${TESTSUITELOG:-$TMP/$(basename $0 .sh).log}
FAIL_ON_ERROR=false
SETUP=${SETUP:-:}
TRACE=${TRACE:-""}
-[ "$SANITYLOG" ] && rm -f $SANITYLOG || true
-
check_and_setup_lustre
LOVNAME=`lctl get_param -n llite.*.lov.common_name | tail -n 1`
assert_DIR
rm -rf $DIR1/[df][0-9]* $DIR1/lnk
+SAMPLE_FILE=$TMP/$(basename $0 .sh).junk
+dd if=/dev/urandom of=$SAMPLE_FILE bs=1M count=1
+
# $RUNAS_ID may get set incorrectly somewhere else
[ $UID -eq 0 -a $RUNAS_ID -eq 0 ] && error "\$RUNAS_ID set to 0, but \$UID is also 0!"
-check_runas_id $RUNAS_ID $RUNAS_ID $RUNAS
+check_runas_id $RUNAS_ID $RUNAS_GID $RUNAS
build_test_filter
test_5() {
mcreate $DIR1/f5
- truncate $DIR2/f5 100
+ $TRUNCATE $DIR2/f5 100
$CHECKSTAT -t file -s 100 $DIR1/f5 || error
rm $DIR1/f5
}
yes "R" | head -c 4000 >$TMP/f10b-seed
dd if=$TMP/f10b-seed of=$DIR1/f10b bs=3k count=1 || error "dd $DIR1"
- truncate $DIR1/f10b 4096 || error "truncate 4096"
+ $TRUNCATE $DIR1/f10b 4096 || error "truncate 4096"
dd if=$DIR2/f10b of=$TMP/f10b-lustre bs=4k count=1 || error "dd $DIR2"
# create a test file locally to compare
dd if=$TMP/f10b-seed of=$TMP/f10b bs=3k count=1 || error "dd random"
- truncate $TMP/f10b 4096 || error "truncate 4096"
+ $TRUNCATE $TMP/f10b 4096 || error "truncate 4096"
cmp $TMP/f10b $TMP/f10b-lustre || error "file miscompare"
rm $TMP/f10b $TMP/f10b-lustre $TMP/f10b-seed
}
cp -p `which multiop` $DIR1/d14/multiop || error "cp failed"
MULTIOP_PROG=$DIR1/d14/multiop multiop_bg_pause $TMP/test14.junk O_c || return 1
MULTIOP_PID=$!
- truncate $DIR2/d14/multiop 0 && kill -9 $MULTIOP_PID && \
+ $TRUNCATE $DIR2/d14/multiop 0 && kill -9 $MULTIOP_PID && \
error "expected truncate error, got success"
kill -USR1 $MULTIOP_PID || return 2
wait $MULTIOP_PID || return 3
remote_ost_nodsh && skip "remote OST with nodsh" && return
lfs setstripe $DIR1/$tfile -i 0 -c 1
- cp /etc/termcap $DIR1/$tfile
+ cp $SAMPLE_FILE $DIR1/$tfile
cancel_lru_locks osc > /dev/null
#define OBD_FAIL_ONCE|OBD_FAIL_LDLM_CREATE_RESOURCE 0x30a
do_facet ost1 lctl set_param fail_loc=0x8000030a
chmod 0755 $DIR1/$tdir/f1 || error "chmod 0755 $DIR1/$tdir/f1"
$RUNAS $CHECKSTAT $DIR2/$tdir/f1 || error "checkstat $DIR2/$tdir/f1 #1"
- setfacl -m u:$RUNAS_ID:--- $DIR1/$tdir || error "setfacl $DIR2/$tdir #1"
+ setfacl -m u:$RUNAS_ID:--- -m g:$RUNAS_GID:--- $DIR1/$tdir || error "setfacl $DIR2/$tdir #1"
$RUNAS $CHECKSTAT $DIR2/$tdir/f1 && error "checkstat $DIR2/$tdir/f1 #2"
- setfacl -m u:$RUNAS_ID:r-x $DIR1/$tdir || error "setfacl $DIR2/$tdir #2"
+ setfacl -m u:$RUNAS_ID:r-x -m g:$RUNAS_GID:r-x $DIR1/$tdir || error "setfacl $DIR2/$tdir #2"
$RUNAS $CHECKSTAT $DIR2/$tdir/f1 || error "checkstat $DIR2/$tdir/f1 #3"
- setfacl -m u:$RUNAS_ID:--- $DIR1/$tdir || error "setfacl $DIR2/$tdir #3"
+ setfacl -m u:$RUNAS_ID:--- -m g:$RUNAS_GID:--- $DIR1/$tdir || error "setfacl $DIR2/$tdir #3"
$RUNAS $CHECKSTAT $DIR2/$tdir/f1 && error "checkstat $DIR2/$tdir/f1 #4"
- setfacl -x u:$RUNAS_ID: $DIR1/$tdir || error "setfacl $DIR2/$tdir #4"
+ setfacl -x u:$RUNAS_ID: -x g:$RUNAS_GID: $DIR1/$tdir || error "setfacl $DIR2/$tdir #4"
$RUNAS $CHECKSTAT $DIR2/$tdir/f1 || error "checkstat $DIR2/$tdir/f1 #5"
rm -rf $DIR1/$tdir
local stat=0
for mds in ${mdts//,/ }; do
varsvc=${mds}_svc
- dev=$(basename $(do_facet $mds lctl get_param -n osd.${!varsvc}.mntdev))
+ 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;
# End commit on sharing tests
+get_ost_lock_timeouts() {
+ local nodes=${1:-$(comma_list $(osts_nodes))}
+
+ local locks=$(do_nodes $nodes \
+ "lctl get_param -n ldlm.namespaces.filter-*.lock_timeouts" | calc_sum)
+
+ echo $locks
+}
+
test_34() { #16129
local OPER
local lock_in
local lock_out
for OPER in notimeout timeout ; do
rm $DIR1/$tfile 2>/dev/null
- lock_in=$(do_nodes $(osts_nodes) "lctl get_param -n ldlm.namespaces.filter-*.lock_timeouts" | calc_sum)
+ lock_in=$(get_ost_lock_timeouts)
if [ $OPER == "timeout" ] ; then
for j in `seq $OSTCOUNT`; do
#define OBD_FAIL_PTLRPC_HPREQ_TIMEOUT 0x511
dd of=/dev/null if=$DIR2/$tfile > /dev/null 2>&1
# wait for a lock timeout
sleep 4
- lock_out=$(do_nodes $(osts_nodes) "lctl get_param -n ldlm.namespaces.filter-*.lock_timeouts" | calc_sum)
+ lock_out=$(get_ost_lock_timeouts)
if [ $OPER == "timeout" ] ; then
if [ $lock_in == $lock_out ]; then
error "no lock timeout happened"
log "cleanup: ======================================================"
[ "$(mount | grep $MOUNT2)" ] && umount $MOUNT2
-check_and_cleanup_lustre
-echo '=========================== finished ==============================='
-[ -f "$SANITYLOG" ] && cat $SANITYLOG && grep -q FAIL $SANITYLOG && exit 1 || true
-echo "$0: completed"
+complete $(basename $0) $SECONDS
+check_and_cleanup_lustre
+exit_status