Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 75b3644..757785f 100644 (file)
@@ -16,12 +16,12 @@ MOUNTCONFSKIP="10 11 12 13 13b 14 15"
 # bug number for skipped test: 13739 
 HEAD_EXCEPT="                  32a 32b "
 
-# bug number for skipped test:                                  13709 10510 12743
-ALWAYS_EXCEPT=" $CONF_SANITY_EXCEPT $MOUNTCONFSKIP $HEAD_EXCEPT 22    23    36"
+# bug number for skipped test:                                  10510 12743
+ALWAYS_EXCEPT=" $CONF_SANITY_EXCEPT $MOUNTCONFSKIP $HEAD_EXCEPT 23    36"
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
 #                                                   
-[ "$SLOW" = "no" ] && EXCEPT="$EXCEPT 0 1 2 3 6 7 15 18 24b 25 30 31 32 33 34a "
+[ "$SLOW" = "no" ] && EXCEPT_SLOW="0 1 2 3 6 7 15 18 24b 25 30 31 32 33 34a "
 
 SRCDIR=`dirname $0`
 PATH=$PWD/$SRCDIR:$SRCDIR:$SRCDIR/../utils:$PATH
@@ -282,7 +282,10 @@ test_5c() {
        start_mds
        [ -d $MOUNT ] || mkdir -p $MOUNT
        grep " $MOUNT " /etc/mtab && echo "test 5c: mtab before mount" && return 10
-       mount -t lustre $MGSNID:/wrong.$FSNAME $MOUNT || :
+       local oldfs="${FSNAME}"
+       FSNAME="wrong.${FSNAME}"
+       mount_client $MOUNT || :
+       FSNAME=${oldfs}
        grep " $MOUNT " /etc/mtab && echo "test 5c: mtab after failed mount" && return 11
        umount_client $MOUNT
        cleanup_nocli  || return $?
@@ -1042,14 +1045,15 @@ test_29() {
        cleanup_nocli
        #writeconf to remove all ost2 traces for subsequent tests
        writeconf
+       start_mds
+       start_ost
+       cleanup
 }
 run_test 29 "permanently remove an OST"
 
 test_30() {
-       # start mds first after writeconf
-       start_mds
-       start_ost
-       mount_client $MOUNT
+       setup
+
        TEST="cat $LPROC/llite/$FSNAME-*/max_read_ahead_whole_mb"
        ORIG=$($TEST) 
        for i in $(seq 1 20); do 
@@ -1424,6 +1428,66 @@ test_37() {
 }
 run_test 37 "verify set tunables works for symlink device"
 
+test_38() { # bug 14222
+       setup
+       # like runtests
+       COUNT=10
+       SRC="/etc /bin"
+       FILES=`find $SRC -type f -mtime +1 | head -n $COUNT`
+       log "copying $(echo $FILES | wc -w) files to $DIR/$tdir"
+       mkdir -p $DIR/$tdir
+       tar cf - $FILES | tar xf - -C $DIR/$tdir || \
+               error "copying $SRC to $DIR/$tdir"
+       sync
+       umount_client $MOUNT
+       stop_mds
+       log "rename lov_objid file on MDS"
+       rm -f $TMP/lov_objid.orig
+       do_facet mds "debugfs -w $MDSDEV" <<-EOF
+               dump lov_objid $TMP/lov_objid.orig
+               rm lov_objid
+       EOF
+       do_facet mds "od -Ax -td8 $TMP/lov_objid.orig"
+       # check create in mds_lov_connect
+       start_mds
+       mount_client $MOUNT
+       for f in $FILES; do
+               [ $V ] && log "verifying $DIR/$tdir/$f"
+               diff $f $DIR/$tdir/$f || ERROR=y
+       done
+       do_facet mds "debugfs -c $MDSDEV" <<-EOF
+               dump lov_objid $TMP/lov_objid.new
+       EOF
+       do_facet mds "od -Ax -td8 $TMP/lov_objid.new"
+       [ "$ERROR" = "y" ] && error "old and new files are different after connect" || true
+       
+       
+       # check it's updates in sync
+       umount_client $MOUNT
+       stop_mds        
+       multiop $TMP/lov_objid.clear Ow4096c
+       do_facet mds "debugfs -w $MDSDEV" <<-EOF
+               write $TMP/lov_objid.clear lov_objid
+       EOF
+       start_mds
+       mount_client $MOUNT
+       for f in $FILES; do
+               [ $V ] && log "verifying $DIR/$tdir/$f"
+               diff $f $DIR/$tdir/$f || ERROR=y
+       done
+       do_facet mds "debugfs -c $MDSDEV" <<-EOF
+               dump lov_objid $TMP/lov_objid.new1
+       EOF
+       do_facet mds "od -Ax -td8 $TMP/lov_objid.new1"
+       umount_client $MOUNT
+       stop_mds
+       [ "$ERROR" = "y" ] && error "old and new files are different after sync" || true
+       
+       log "files compared the same"
+       #cleanup
+}
+run_test 38 "MDS recreates missing lov_objid file from OST data"
+
 umount_client $MOUNT
 cleanup_nocli
 cleanup_krb5_env