Whamcloud - gitweb
LU-888 lctl: remove perilous lctl {get,set,list}_param behavior.
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 4a71ed6..f1235f1 100644 (file)
@@ -1045,8 +1045,7 @@ exhaust_precreations() {
        local MDSIDX=$(get_mds_dir "$DIR/$tdir")
        echo OSTIDX=$OSTIDX MDSIDX=$MDSIDX
 
-       local OST=$(lfs osts | grep ${OSTIDX}": " | \
-               awk '{print $2}' | sed -e 's/_UUID$//')
+       local OST=$(ostname_from_index $OSTIDX)
        local MDT_INDEX=$(lfs df | grep "\[MDT:$((MDSIDX - 1))\]" | awk '{print $1}' | \
                          sed -e 's/_UUID$//;s/^.*-//')
 
@@ -1140,6 +1139,7 @@ test_27q() {
        reset_enospc
        rm -f $DIR/$tdir/$tfile
 
+       mkdir -p $DIR/$tdir
        $MCREATE $DIR/$tdir/$tfile || error "mcreate $DIR/$tdir/$tfile failed"
        $TRUNCATE $DIR/$tdir/$tfile 80000000 ||error "truncate $DIR/$tdir/$tfile failed"
        $CHECKSTAT -s 80000000 $DIR/$tdir/$tfile || error "checkstat failed"
@@ -1222,7 +1222,7 @@ test_27v() { # bug 4900
         touch $DIR/$tdir/$tfile
         #define OBD_FAIL_TGT_DELAY_PRECREATE     0x705
         # all except ost1
-        for (( i=0; i < OSTCOUNT; i++ )) ; do
+        for (( i=1; i < OSTCOUNT; i++ )); do
                 do_facet ost$i lctl set_param fail_loc=0x705
         done
         local START=`date +%s`
@@ -1263,7 +1263,7 @@ test_27x() {
        [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2 OSTs" && return
        OFFSET=$(($OSTCOUNT - 1))
        OSTIDX=0
-       local OST=$(lfs osts | awk '/'${OSTIDX}': / { print $2 }' | sed -e 's/_UUID$//')
+       local OST=$(ostname_from_index $OSTIDX)
 
        mkdir -p $DIR/$tdir
        $SETSTRIPE $DIR/$tdir -c 1      # 1 stripe per file
@@ -1304,14 +1304,14 @@ test_27y() {
                 } fi
         done
 
-        OSTIDX=$(lfs osts | grep ${OST} | awk '{print $1}' | sed -e 's/://')
+        OSTIDX=$(index_from_ostuuid $OST)
         mkdir -p $DIR/$tdir
         $SETSTRIPE $DIR/$tdir -c 1      # 1 stripe / file
 
-        do_facet ost$OSTIDX lctl set_param -n obdfilter.$OST.degraded 1
+        do_facet ost$((OSTIDX+1)) lctl set_param -n obdfilter.$OST.degraded 1
         sleep_maxage
         createmany -o $DIR/$tdir/$tfile $fcount
-        do_facet ost$OSTIDX lctl set_param -n obdfilter.$OST.degraded 0
+        do_facet ost$((OSTIDX+1)) lctl set_param -n obdfilter.$OST.degraded 0
 
         for i in `seq 0 $OFFSET`; do
                 [ `$GETSTRIPE $DIR/$tdir/$tfile$i | grep -A 10 obdidx | awk '{print $1}'| grep -w "$OSTIDX"` ] || \
@@ -1353,8 +1353,7 @@ check_seq_oid()
                 local objid=${lmm[$((j+1))]}
                 local group=${lmm[$((j+3))]}
                 local dev=$(ostdevname $devnum)
-                local dir=${MOUNT%/*}/ost$devnum
-                local mntpt=$(facet_mntpt ost$devnum)
+                local dir=$(facet_mntpt ost$devnum)
 
                 stop ost$devnum
                 do_facet ost$devnum mount -t $FSTYPE $dev $dir $OST_MOUNT_OPTS ||
@@ -1374,7 +1373,7 @@ check_seq_oid()
                 [ $stripe -eq $i ] || { error "stripe mismatch"; return 6; }
 
                 echo -e "\t\tost $obdidx, objid $objid, group $group"
-                do_facet ost$devnum umount -d $mntpt
+                do_facet ost$devnum umount -d $dir
                 start ost$devnum $dev $OST_MOUNT_OPTS
         done
 }
@@ -3266,7 +3265,7 @@ test_56a() {      # was test_56
         [  "$OSTCOUNT" -lt 2 ] && \
                 skip_env "skipping other lfs getstripe --obd test" && return
         OSTIDX=1
-        OBDUUID=$(lfs osts | grep ${OSTIDX}": " | awk '{print $2}')
+        OBDUUID=$(ostuuid_from_index $OSTIDX)
         FILENUM=`$GETSTRIPE -ir $DIR/d56 | grep -x $OSTIDX | wc -l`
         FOUND=`$GETSTRIPE -r --obd $OBDUUID $DIR/d56 | grep obdidx | wc -l`
         [ $FOUND -eq $FILENUM ] || \
@@ -3409,19 +3408,27 @@ test_56n() {
 run_test 56n "check lfs find -type l ============================="
 
 test_56o() {
-       setup_56 $NUMFILES $NUMDIRS
        TDIR=$DIR/${tdir}g
+       rm -rf $TDIR
+       setup_56 $NUMFILES $NUMDIRS
 
        utime $TDIR/file1 > /dev/null || error "utime (1)"
        utime $TDIR/file2 > /dev/null || error "utime (2)"
        utime $TDIR/dir1 > /dev/null || error "utime (3)"
        utime $TDIR/dir2 > /dev/null || error "utime (4)"
        utime $TDIR/dir1/file1 > /dev/null || error "utime (5)"
+       dd if=/dev/zero count=1 >> $TDIR/dir1/file1 && sync
 
-       EXPECTED=5
-       NUMS=`$LFIND -mtime +1 $TDIR | wc -l`
+       EXPECTED=4
+       NUMS=`$LFIND -mtime +0 $TDIR | wc -l`
        [ $NUMS -eq $EXPECTED ] || \
-               error "lfs find -mtime $TDIR wrong: found $NUMS, expected $EXPECTED"
+               error "lfs find -mtime +0 $TDIR wrong: found $NUMS, expected $EXPECTED"
+
+       EXPECTED=12
+       NUMS=`$LFIND -mtime 0 $TDIR | wc -l`
+       [ $NUMS -eq $EXPECTED ] || \
+               error "lfs find -mtime 0 $TDIR wrong: found $NUMS, expected $EXPECTED"
+
 }
 run_test 56o "check lfs find -mtime for old files =========================="
 
@@ -3484,6 +3491,7 @@ test_56r() {
        [ $NUMS -eq $EXPECTED ] || \
                error "lfs find $TDIR ! -size 0 wrong: found $NUMS, expected $EXPECTED"
        echo "test" > $TDIR/56r && sync
+       echo "test2" > $TDIR/56r2 && sync
        EXPECTED=1
        NUMS=`$LFIND -size 5 -t f $TDIR | wc -l`
        [ $NUMS -eq $EXPECTED ] || \
@@ -3492,14 +3500,18 @@ test_56r() {
        NUMS=`$LFIND -size +5 -t f $TDIR | wc -l`
        [ $NUMS -eq $EXPECTED ] || \
                error "lfs find $TDIR -size +5 wrong: found $NUMS, expected $EXPECTED"
-       EXPECTED=13
+       EXPECTED=2
        NUMS=`$LFIND -size +0 -t f $TDIR | wc -l`
        [ $NUMS -eq $EXPECTED ] || \
                error "lfs find $TDIR -size +0 wrong: found $NUMS, expected $EXPECTED"
-       EXPECTED=0
+       EXPECTED=2
        NUMS=`$LFIND ! -size -5 -t f $TDIR | wc -l`
        [ $NUMS -eq $EXPECTED ] || \
                error "lfs find $TDIR ! -size -5 wrong: found $NUMS, expected $EXPECTED"
+       EXPECTED=12
+       NUMS=`$LFIND -size -5 -t f $TDIR | wc -l`
+       [ $NUMS -eq $EXPECTED ] || \
+               error "lfs find $TDIR -size -5 wrong: found $NUMS, expected $EXPECTED"
 }
 
 run_test 56r "check lfs find -size works =========================="
@@ -4180,7 +4192,7 @@ set_checksums()
        return 0
 }
 
-export ORIG_CSUM_TYPE="`lctl get_param -n osc/*osc-[^mM]*/checksum_type |
+export ORIG_CSUM_TYPE="`lctl get_param -n osc.*osc-[^mM]*.checksum_type |
                         sed 's/.*\[\(.*\)\].*/\1/g' | head -n1`"
 CKSUM_TYPES=${CKSUM_TYPES:-"crc32 adler"}
 [ "$ORIG_CSUM_TYPE" = "crc32c" ] && CKSUM_TYPES="$CKSUM_TYPES crc32c"
@@ -5097,10 +5109,13 @@ test_104a() {
        lfs df $DIR/$tfile || error "lfs df $DIR/$tfile failed"
        lfs df -ih $DIR/$tfile || error "lfs df -ih $DIR/$tfile failed"
 
-       OSC=`lctl get_param -n devices | awk '/-osc-/ {print $4}' | head -n 1`
+        OSC=`lctl dl |grep OST0000-osc-[^M] |awk '{print $4}'`
        lctl --device %$OSC deactivate
        lfs df || error "lfs df with deactivated OSC failed"
        lctl --device %$OSC activate
+        # wait the osc back to normal
+        wait_osc_import_state client ost FULL
+
        lfs df || error "lfs df with reactivated OSC failed"
        rm -f $DIR/$tfile
 }
@@ -6161,7 +6176,7 @@ test_124a() {
         done
         echo ""
         lctl set_param -n $NSDIR.pool.lock_volume_factor $OLD_LVF
-        local LRU_SIZE_A=`lctl get_param -n $NSDIR/lru_size`
+        local LRU_SIZE_A=`lctl get_param -n $NSDIR.lru_size`
 
         [ $LRU_SIZE_B -gt $LRU_SIZE_A ] || {
                 error "No locks dropped in ${SLEEP}s. LRU size: $LRU_SIZE_A"
@@ -6792,7 +6807,7 @@ check_stats() {
        case $1 in
        $SINGLEMDS) res=`do_facet $SINGLEMDS $LCTL get_param mdt.$FSNAME-MDT0000.md_stats | grep "$2"`
                 ;;
-       ost) res=`do_facet ost $LCTL get_param obdfilter.$FSNAME-OST0000.stats | grep "$2"`
+       ost) res=`do_facet ost1 $LCTL get_param obdfilter.$FSNAME-OST0000.stats | grep "$2"`
                 ;;
        *) error "Wrong argument $1" ;;
        esac
@@ -6813,7 +6828,7 @@ test_133a() {
 
        # clear stats.
        do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear
-       do_facet ost $LCTL set_param obdfilter.*.stats=clear
+       do_facet ost1 $LCTL set_param obdfilter.*.stats=clear
 
        # verify mdt stats first.
        mkdir ${testdir} || error "mkdir failed"
@@ -6846,7 +6861,7 @@ test_133b() {
 
        # clear stats.
        do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear
-       do_facet ost $LCTL set_param obdfilter.*.stats=clear
+       do_facet ost1 $LCTL set_param obdfilter.*.stats=clear
 
        # extra mdt stats verification.
        chmod 444 ${testdir}/${tfile} || error "chmod failed"
@@ -6871,7 +6886,7 @@ test_133c() {
 
        # clear stats.
        do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear
-       do_facet ost $LCTL set_param obdfilter.*.stats=clear
+       do_facet ost1 $LCTL set_param obdfilter.*.stats=clear
 
        dd if=/dev/zero of=${testdir}/${tfile} conv=notrunc bs=1024k count=1 || error "dd failed"
        sync
@@ -7321,11 +7336,24 @@ err17935 () {
        error $*
     fi
 }
+
+changelog_chmask()
+{
+    MASK=$(do_facet $SINGLEMDS $LCTL get_param mdd.$MDT0.changelog_mask |\
+           grep -c $1)
+
+    if [ $MASK -eq 1 ]; then
+        do_facet $SINGLEMDS $LCTL set_param mdd.$MDT0.changelog_mask="-$1"
+    else
+        do_facet $SINGLEMDS $LCTL set_param mdd.$MDT0.changelog_mask="+$1"
+    fi
+}
+
 test_160() {
     remote_mds_nodsh && skip "remote MDS with nodsh" && return
-    USER=$(do_facet $SINGLEMDS lctl --device $MDT0 changelog_register -n)
+    USER=$(do_facet $SINGLEMDS $LCTL --device $MDT0 changelog_register -n)
     echo "Registered as changelog user $USER"
-    do_facet $SINGLEMDS lctl get_param -n mdd.$MDT0.changelog_users | \
+    do_facet $SINGLEMDS $LCTL get_param -n mdd.$MDT0.changelog_users | \
        grep -q $USER || error "User $USER not found in changelog_users"
 
     # change something
@@ -7340,12 +7368,23 @@ test_160() {
     $LFS changelog $MDT0 | tail -5
 
     echo "verifying changelog mask"
-    do_facet $SINGLEMDS lctl set_param mdd.$MDT0.changelog_mask="-mkdir"
-    mkdir -p $DIR/$tdir/pics/2009/sofia
-    do_facet $SINGLEMDS lctl set_param mdd.$MDT0.changelog_mask="+mkdir"
-    mkdir $DIR/$tdir/pics/2009/zachary
-    DIRS=$($LFS changelog $MDT0 | tail -5 | grep -c MKDIR)
-    [ $DIRS -eq 1 ] || err17935 "changelog mask count $DIRS != 1"
+    changelog_chmask "MKDIR"
+    changelog_chmask "CLOSE"
+
+    mkdir -p $DIR/$tdir/pics/zach/sofia
+    echo "zzzzzz" > $DIR/$tdir/pics/zach/file
+
+    changelog_chmask "MKDIR"
+    changelog_chmask "CLOSE"
+
+    mkdir -p $DIR/$tdir/pics/2008/sofia
+    echo "zzzzzz" > $DIR/$tdir/pics/zach/file
+
+    $LFS changelog $MDT0
+    MKDIRS=$($LFS changelog $MDT0 | tail -5 | grep -c "MKDIR")
+    CLOSES=$($LFS changelog $MDT0 | tail -5 | grep -c "CLOSE")
+    [ $MKDIRS -eq 1 ] || err17935 "MKDIR changelog mask count $DIRS != 1"
+    [ $CLOSES -eq 1 ] || err17935 "CLOSE changelog mask count $DIRS != 1"
 
     # verify contents
     echo "verifying target fid"
@@ -7361,16 +7400,16 @@ test_160() {
     [ "$fidc" == "p=$fidf" ] || \
        err17935 "pfid in changelog $fidc != dir fid $fidf"
 
-    USER_REC1=$(do_facet $SINGLEMDS lctl get_param -n \
+    USER_REC1=$(do_facet $SINGLEMDS $LCTL get_param -n \
        mdd.$MDT0.changelog_users | grep $USER | awk '{print $2}')
     $LFS changelog_clear $MDT0 $USER $(($USER_REC1 + 5))
-    USER_REC2=$(do_facet $SINGLEMDS lctl get_param -n \
+    USER_REC2=$(do_facet $SINGLEMDS $LCTL get_param -n \
        mdd.$MDT0.changelog_users | grep $USER | awk '{print $2}')
     echo "verifying user clear: $(( $USER_REC1 + 5 )) == $USER_REC2"
     [ $USER_REC2 == $(($USER_REC1 + 5)) ] || \
        err17935 "user index should be $(($USER_REC1 + 5)); is $USER_REC2"
 
-    MIN_REC=$(do_facet $SINGLEMDS lctl get_param mdd.$MDT0.changelog_users | \
+    MIN_REC=$(do_facet $SINGLEMDS $LCTL get_param mdd.$MDT0.changelog_users | \
        awk 'min == "" || $2 < min {min = $2}; END {print min}')
     FIRST_REC=$($LFS changelog $MDT0 | head -1 | awk '{print $1}')
     echo "verifying min purge: $(( $MIN_REC + 1 )) == $FIRST_REC"
@@ -7378,17 +7417,17 @@ test_160() {
        err17935 "first index should be $(($MIN_REC + 1)); is $FIRST_REC"
 
     echo "verifying user deregister"
-    do_facet $SINGLEMDS lctl --device $MDT0 changelog_deregister $USER
-    do_facet $SINGLEMDS lctl get_param -n mdd.$MDT0.changelog_users | \
+    do_facet $SINGLEMDS $LCTL --device $MDT0 changelog_deregister $USER
+    do_facet $SINGLEMDS $LCTL get_param -n mdd.$MDT0.changelog_users | \
        grep -q $USER && error "User $USER still found in changelog_users"
 
-    USERS=$(( $(do_facet $SINGLEMDS lctl get_param -n \
+    USERS=$(( $(do_facet $SINGLEMDS $LCTL get_param -n \
        mdd.$MDT0.changelog_users | wc -l) - 2 ))
     if [ $USERS -eq 0 ]; then
-       LAST_REC1=$(do_facet $SINGLEMDS lctl get_param -n \
+       LAST_REC1=$(do_facet $SINGLEMDS $LCTL get_param -n \
            mdd.$MDT0.changelog_users | head -1 | awk '{print $3}')
        touch $DIR/$tdir/chloe
-       LAST_REC2=$(do_facet $SINGLEMDS lctl get_param -n \
+       LAST_REC2=$(do_facet $SINGLEMDS $LCTL get_param -n \
            mdd.$MDT0.changelog_users | head -1 | awk '{print $3}')
        echo "verify changelogs are off if we were the only user: $LAST_REC1 == $LAST_REC2"
        [ $LAST_REC1 == $LAST_REC2 ] || error "changelogs not off"
@@ -7677,12 +7716,12 @@ test_180b() {
         local rc=0
         local rmmod_remote=0
 
-        do_facet ost "lsmod | grep -q obdecho || "                      \
-                     "{ insmod ${LUSTRE}/obdecho/obdecho.ko || "        \
-                     "modprobe obdecho; }" && rmmod_remote=1
-        target=$(do_facet ost $LCTL dl | awk '/obdfilter/ {print $4;exit}')
-        [[ -n $target ]] && { obdecho_create_test $target ost || rc=1; }
-        [ $rmmod_remote -eq 1 ] && do_facet ost "rmmod obdecho"
+        do_facet ost1 "lsmod | grep -q obdecho || "                      \
+                      "{ insmod ${LUSTRE}/obdecho/obdecho.ko || "        \
+                      "modprobe obdecho; }" && rmmod_remote=1
+        target=$(do_facet ost1 $LCTL dl | awk '/obdfilter/ {print $4;exit}')
+        [[ -n $target ]] && { obdecho_create_test $target ost1 || rc=1; }
+        [ $rmmod_remote -eq 1 ] && do_facet ost1 "rmmod obdecho"
         return $rc
 }
 run_test 180b "test obdecho directly on obdfilter"
@@ -8222,12 +8261,15 @@ run_test 216 "check lockless direct write works and updates file size and kms co
 
 test_217() { # bug 22430
        local node
+       local nid
+
        for node in $(nodes_list); do
-               if [[ $node = *-* ]] ; then
-                       echo "lctl ping $node@$NETTYPE"
-                       lctl ping $node@$NETTYPE
+               nid=$(host_nids_address $node $NETTYPE)
+               if [[ $nid = *-* ]] ; then
+                       echo "lctl ping $nid@$NETTYPE"
+                       lctl ping $nid@$NETTYPE
                else
-                       echo "skipping $node (no hiphen detected)"
+                       echo "skipping $node (no hyphen detected)"
                fi
        done
 }