⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sanity.sh

📁 lustre 1.6.5 source code
💻 SH
📖 第 1 页 / 共 5 页
字号:
	[ ! -d $DIR/d27 ] && mkdir -p $DIR/d27	$SETSTRIPE $FILE -s 67108864 || error "lstripe failed"	BLKSIZE=`stat $FILE | awk '/IO Block:/ { print $7 }'`	[ $BLKSIZE -le $LL_MAX_BLKSIZE ] || error "$BLKSIZE > $LL_MAX_BLKSIZE"	dd if=/dev/zero of=$FILE bs=4k count=1	BLKSIZE=`stat $FILE | awk '/IO Block:/ { print $7 }'`	[ $BLKSIZE -le $LL_MAX_BLKSIZE ] || error "$BLKSIZE > $LL_MAX_BLKSIZE"}run_test 27k "limit i_blksize for broken user apps ============="test_27l() {	mkdir -p $DIR/d27	mcreate $DIR/f27l || error "creating file"	$RUNAS $SETSTRIPE $DIR/f27l -c 1 && \		error "lstripe should have failed" || true}run_test 27l "check setstripe permissions (should return error)"test_27m() {	[ "$OSTCOUNT" -lt "2" ] && skip "$OSTCOUNT < 2 OSTs -- skipping" && return	if [ $ORIGFREE -gt $MAXFREE ]; then		skip "$ORIGFREE > $MAXFREE skipping out-of-space test on OST0"		return	fi	mkdir -p $DIR/d27	$SETSTRIPE $DIR/d27/f27m_1 -i 0 -c 1	dd if=/dev/zero of=$DIR/d27/f27m_1 bs=1024 count=$MAXFREE && \		error "dd should fill OST0"	i=2	while $SETSTRIPE $DIR/d27/f27m_$i -i 0 -c 1 ; do		i=`expr $i + 1`		[ $i -gt 256 ] && break	done	i=`expr $i + 1`	touch $DIR/d27/f27m_$i	[ `$GETSTRIPE $DIR/d27/f27m_$i | grep -A 10 obdidx | awk '{print $1}'| grep -w "0"` ] && \		error "OST0 was full but new created file still use it"	i=`expr $i + 1`	touch $DIR/d27/f27m_$i	[ `$GETSTRIPE $DIR/d27/f27m_$i | grep -A 10 obdidx | awk '{print $1}'| grep -w "0"` ] && \		error "OST0 was full but new created file still use it"	rm -r $DIR/d27}run_test 27m "create file while OST0 was full =================="# osc's keep a NOSPC stick flag that gets unset with rmdirreset_enospc() {	[ "$1" ] && FAIL_LOC=$1 || FAIL_LOC=0	mkdir -p $DIR/d27/nospc	rmdir $DIR/d27/nospc	sysctl -w lustre.fail_loc=$FAIL_LOC}exhaust_precreations() {	OSTIDX=$1	OST=$(lctl get_param -n lov.${LOVNAME}.target_obd | grep ${OSTIDX}": " | \	    awk '{print $2}' | sed -e 's/_UUID$//')	# on the mdt's osc	last_id=$(lctl get_param -n osc.${OST}-osc.prealloc_last_id)	next_id=$(lctl get_param -n osc.${OST}-osc.prealloc_next_id)	mkdir -p $DIR/d27/${OST}	$SETSTRIPE $DIR/d27/${OST} -i $OSTIDX -c 1	#define OBD_FAIL_OST_ENOSPC 0x215	sysctl -w lustre.fail_loc=0x215	echo "Creating to objid $last_id on ost $OST..."	createmany -o $DIR/d27/${OST}/f $next_id $((last_id - next_id + 2))	lctl get_param -n osc.${OST}-osc.prealloc* | grep '[0-9]'	reset_enospc $2}exhaust_all_precreations() {	local i	for (( i=0; i < OSTCOUNT; i++ )) ; do		exhaust_precreations $i 0x215	done	reset_enospc $1}test_27n() {	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return	reset_enospc	rm -f $DIR/d27/f27n	exhaust_precreations 0 0x80000215	touch $DIR/d27/f27n || error	reset_enospc}run_test 27n "create file with some full OSTs =================="test_27o() {	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return	reset_enospc	rm -f $DIR/d27/f27o	exhaust_all_precreations 0x215	sleep 5	touch $DIR/d27/f27o && error "able to create $DIR/d27/f27o"	reset_enospc}run_test 27o "create file with all full OSTs (should error) ===="test_27p() {	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return	reset_enospc	rm -f $DIR/d27/f27p	$MCREATE $DIR/d27/f27p || error	$TRUNCATE $DIR/d27/f27p 80000000 || error	$CHECKSTAT -s 80000000 $DIR/d27/f27p || error	exhaust_precreations 0 0x80000215	echo foo >> $DIR/d27/f27p || error	$CHECKSTAT -s 80000004 $DIR/d27/f27p || error	reset_enospc}run_test 27p "append to a truncated file with some full OSTs ==="test_27q() {	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return	reset_enospc	rm -f $DIR/d27/f27q	$MCREATE $DIR/d27/f27q || error "mcreate $DIR/d27/f27q failed"	$TRUNCATE $DIR/d27/f27q 80000000 ||error "truncate $DIR/d27/f27q failed"	$CHECKSTAT -s 80000000 $DIR/d27/f27q || error "checkstat failed"	exhaust_all_precreations 0x215	echo foo >> $DIR/d27/f27q && error "append succeeded"	$CHECKSTAT -s 80000000 $DIR/d27/f27q || error "checkstat 2 failed"	reset_enospc}run_test 27q "append to truncated file with all OSTs full (should error) ==="test_27r() {	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return	reset_enospc	rm -f $DIR/d27/f27r	exhaust_precreations 0 0x80000215	$SETSTRIPE $DIR/d27/f27r -i 0 -c 2 # && error	reset_enospc}run_test 27r "stripe file with some full OSTs (shouldn't LBUG) ="test_27s() { # bug 10725	mkdir -p $DIR/$tdir	$LSTRIPE $DIR/$tdir $((2048 * 1024 * 1024)) -1 2 && \		error "stripe width >= 2^32 succeeded" || true}run_test 27s "lsm_xfersize overflow (should error) (bug 10725)"test_27t() { # bug 10864        WDIR=`pwd`        WLFS=`which lfs`        cd $DIR        touch $tfile        $WLFS getstripe $tfile        cd $WDIR}run_test 27t "check that utils parse path correctly"test_27u() { # bug 4900	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return        #define OBD_FAIL_MDS_OSC_PRECREATE      0x139        sysctl -w lustre.fail_loc=0x139        mkdir -p $DIR/d27u        createmany -o $DIR/d27u/t- 1000        sysctl -w lustre.fail_loc=0        TLOG=$DIR/$tfile.getstripe        $GETSTRIPE $DIR/d27u > $TLOG        OBJS=`awk -vobj=0 '($1 == 0) { obj += 1 } END { print obj;}' $TLOG`        unlinkmany $DIR/d27u/t- 1000        [ $OBJS -gt 0 ] && \                error "$OBJS objects created on OST-0.  See $TLOG" || pass}run_test 27u "skip object creation on OSC w/o objects =========="test_27v() { # bug 4900	[ "$OSTCOUNT" -lt "2" ] && skip "too few OSTs" && return	remote_mds && skip "remote MDS" && return        exhaust_all_precreations        mkdir -p $DIR/$tdir        $SETSTRIPE $DIR/$tdir -c 1         # 1 stripe / file        touch $DIR/$tdir/$tfile        #define OBD_FAIL_TGT_DELAY_PRECREATE     0x705        sysctl -w lustre.fail_loc=0x705        START=`date +%s`        for F in `seq 1 32`; do                touch $DIR/$tdir/$tfile.$F        done        sysctl -w lustre.fail_loc=0        FINISH=`date +%s`        TIMEOUT=`sysctl -n lustre.timeout`        [ $((FINISH - START)) -ge $((TIMEOUT / 2)) ] && \               error "$FINISH - $START >= $TIMEOUT / 2"        reset_enospc}run_test 27v "skip object creation on slow OST ================="test_27w() { # bug 10997        mkdir -p $DIR/d27w || error "mkdir failed"        $LSTRIPE $DIR/d27w/f0 -s 65536 || error "lstripe failed"        size=`$LSTRIPEINFO $DIR/d27w/f0 | awk {'print $1'}`        [ $size -ne 65536 ] && error "stripe size $size != 65536" || true        [ "$OSTCOUNT" -lt "2" ] && skip "skipping multiple stripe count/offset test" && return        for i in `seq 1 $OSTCOUNT`; do                offset=$(($i-1))                $LSTRIPE $DIR/d27w/f$i -c $i -i $offset || error "lstripe -c $i -i $offset failed"                count=`$LSTRIPEINFO $DIR/d27w/f$i | awk {'print $2'}`                index=`$LSTRIPEINFO $DIR/d27w/f$i | awk {'print $3'}`                [ $count -ne $i ] && error "stripe count $count != $i" || true                [ $index -ne $offset ] && error "stripe offset $index != $offset" || true        done}run_test 27w "check lfs setstripe -c -s -i options ============="test_28() {	mkdir $DIR/d28	$CREATETEST $DIR/d28/ct || error}run_test 28 "create/mknod/mkdir with bad file types ============"test_29() {	cancel_lru_locks mdc	mkdir $DIR/d29	touch $DIR/d29/foo	log 'first d29'	ls -l $DIR/d29	LOCKCOUNTORIG=`lctl get_param -n ldlm.namespaces.*mdc*.lock_count`	LOCKUNUSEDCOUNTORIG=`lctl get_param -n ldlm.namespaces.*mdc*.lock_unused_count`	[ -z $"LOCKCOUNTORIG" ] && echo "No mdc lock count" && return 1	log 'second d29'	ls -l $DIR/d29	log 'done'	LOCKCOUNTCURRENT=`lctl get_param -n ldlm.namespaces.*mdc*.lock_count`	LOCKUNUSEDCOUNTCURRENT=`lctl get_param -n ldlm.namespaces.*mdc*.lock_unused_count`	if [ "$LOCKCOUNTCURRENT" -gt "$LOCKCOUNTORIG" ]; then		lctl set_param -n ldlm.dump_namespaces ""		error "CURRENT: $LOCKCOUNTCURRENT > $LOCKCOUNTORIG"		$LCTL dk | sort -k4 -t: > $TMP/test_29.dk		log "dumped log to $TMP/test_29.dk (bug 5793)"		return 2	fi	if [ "$LOCKUNUSEDCOUNTCURRENT" -gt "$LOCKUNUSEDCOUNTORIG" ]; then		error "UNUSED: $LOCKUNUSEDCOUNTCURRENT > $LOCKUNUSEDCOUNTORIG"		$LCTL dk | sort -k4 -t: > $TMP/test_29.dk		log "dumped log to $TMP/test_29.dk (bug 5793)"		return 3	fi}run_test 29 "IT_GETATTR regression  ============================"test_30() {	cp `which ls` $DIR	$DIR/ls /	rm $DIR/ls}run_test 30 "run binary from Lustre (execve) ==================="test_31a() {	$OPENUNLINK $DIR/f31 $DIR/f31 || error	$CHECKSTAT -a $DIR/f31 || error}run_test 31a "open-unlink file =================================="test_31b() {	touch $DIR/f31 || error	ln $DIR/f31 $DIR/f31b || error	multiop $DIR/f31b Ouc || error	$CHECKSTAT -t file $DIR/f31 || error}run_test 31b "unlink file with multiple links while open ======="test_31c() {	touch $DIR/f31 || error	ln $DIR/f31 $DIR/f31c || error	multiop_bg_pause $DIR/f31 O_uc || return 1	MULTIPID=$!	multiop $DIR/f31c Ouc	kill -USR1 $MULTIPID	wait $MULTIPID}run_test 31c "open-unlink file with multiple links ============="test_31d() {	opendirunlink $DIR/d31d $DIR/d31d || error	$CHECKSTAT -a $DIR/d31d || error}run_test 31d "remove of open directory ========================="test_31e() { # bug 2904	check_kernel_version 34 || return 0	openfilleddirunlink $DIR/d31e || error}run_test 31e "remove of open non-empty directory ==============="test_31f() { # bug 4554	set -vx	mkdir $DIR/d31f	$SETSTRIPE $DIR/d31f -s 1048576 -c 1	cp /etc/hosts $DIR/d31f	ls -l $DIR/d31f	$GETSTRIPE $DIR/d31f/hosts	multiop_bg_pause $DIR/d31f D_c || return 1	MULTIPID=$!	rm -rv $DIR/d31f || error "first of $DIR/d31f"	mkdir $DIR/d31f	$SETSTRIPE $DIR/d31f -s 1048576 -c 1	cp /etc/hosts $DIR/d31f	ls -l $DIR/d31f	$DIR/d31f/hosts	multiop_bg_pause $DIR/d31f D_c || return 1	MULTIPID2=$!	kill -USR1 $MULTIPID || error "first opendir $MULTIPID not running"	wait $MULTIPID || error "first opendir $MULTIPID failed"	sleep 6	kill -USR1 $MULTIPID2 || error "second opendir $MULTIPID not running"	wait $MULTIPID2 || error "second opendir $MULTIPID2 failed"	set +vx}run_test 31f "remove of open directory with open-unlink file ==="test_32a() {	echo "== more mountpoints and symlinks ================="	[ -e $DIR/d32a ] && rm -fr $DIR/d32a	mkdir -p $DIR/d32a/ext2-mountpoint 	mount -t ext2 -o loop $EXT2_DEV $DIR/d32a/ext2-mountpoint || error	$CHECKSTAT -t dir $DIR/d32a/ext2-mountpoint/.. || error  	$UMOUNT $DIR/d32a/ext2-mountpoint || error}run_test 32a "stat d32a/ext2-mountpoint/.. ====================="test_32b() {	[ -e $DIR/d32b ] && rm -fr $DIR/d32b	mkdir -p $DIR/d32b/ext2-mountpoint 	mount -t ext2 -o loop $EXT2_DEV $DIR/d32b/ext2-mountpoint || error	ls -al $DIR/d32b/ext2-mountpoint/.. || error	$UMOUNT $DIR/d32b/ext2-mountpoint || error}run_test 32b "open d32b/ext2-mountpoint/.. =====================" test_32c() {	[ -e $DIR/d32c ] && rm -fr $DIR/d32c	mkdir -p $DIR/d32c/ext2-mountpoint 	mount -t ext2 -o loop $EXT2_DEV $DIR/d32c/ext2-mountpoint || error	mkdir -p $DIR/d32c/d2/test_dir    	$CHECKSTAT -t dir $DIR/d32c/ext2-mountpoint/../d2/test_dir || error	$UMOUNT $DIR/d32c/ext2-mountpoint || error}run_test 32c "stat d32c/ext2-mountpoint/../d2/test_dir ========="test_32d() {	[ -e $DIR/d32d ] && rm -fr $DIR/d32d	mkdir -p $DIR/d32d/ext2-mountpoint 	mount -t ext2 -o loop $EXT2_DEV $DIR/d32d/ext2-mountpoint || error	mkdir -p $DIR/d32d/d2/test_dir    	ls -al $DIR/d32d/ext2-mountpoint/../d2/test_dir || error	$UMOUNT $DIR/d32d/ext2-mountpoint || error}run_test 32d "open d32d/ext2-mountpoint/../d2/test_dir ========="test_32e() {	[ -e $DIR/d32e ] && rm -fr $DIR/d32e	mkdir -p $DIR/d32e/tmp    	TMP_DIR=$DIR/d32e/tmp       	ln -s $DIR/d32e $TMP_DIR/symlink11 	ln -s $TMP_DIR/symlink11 $TMP_DIR/../symlink01 	$CHECKSTAT -t link $DIR/d32e/tmp/symlink11 || error	$CHECKSTAT -t link $DIR/d32e/symlink01 || error}run_test 32e "stat d32e/symlink->tmp/symlink->lustre-subdir ===="test_32f() {	[ -e $DIR/d32f ] && rm -fr $DIR/d32f	mkdir -p $DIR/d32f/tmp    	TMP_DIR=$DIR/d32f/tmp       	ln -s $DIR/d32f $TMP_DIR/symlink11 	ln -s $TMP_DIR/symlink11 $TMP_DIR/../symlink01 	ls $DIR/d32f/tmp/symlink11  || error	ls $DIR/d32f/symlink01 || error}run_test 32f "open d32f/symlink->tmp/symlink->lustre-subdir ===="test_32g() {	TMP_DIR=$DIR/$tdir/tmp       	mkdir -p $TMP_DIR $DIR/${tdir}2	ln -s $DIR/${tdir}2 $TMP_DIR/symlink12 	ln -s $TMP_DIR/symlink12 $TMP_DIR/../symlink02 	$CHECKSTAT -t link $TMP_DIR/symlink12 || error	$CHECKSTAT -t link $DIR/$tdir/symlink02 || error	$CHECKSTAT -t dir -f $TMP_DIR/symlink12 || error	$CHECKSTAT -t dir -f $DIR/$tdir/symlink02 || error

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -