Whamcloud - gitweb
LU-10447 tests: replace $SET/$GETSTRIPE for misc tests
[fs/lustre-release.git] / lustre / tests / recovery-small.sh
index 8f7c48d..a30aa8a 100755 (executable)
@@ -11,9 +11,17 @@ init_test_env $@
 init_logging
 
 ALWAYS_EXCEPT="$RECOVERY_SMALL_EXCEPT "
-# bug number for skipped test:
-ALWAYS_EXCEPT+="               "
-# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
+if $SHARED_KEY; then
+       # bug number for skipped test: LU-12896
+       ALWAYS_EXCEPT+="               110k"
+       # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
+fi
+
+selinux_status=$(getenforce)
+if [ "$selinux_status" != "Disabled" ]; then
+       # bug number for skipped test:   LU-12928
+       $SHARED_KEY && ALWAYS_EXCEPT+=" 136"
+fi
 
 require_dsh_mds || exit 0
 
@@ -1534,8 +1542,8 @@ test_65() {
        mount_client $DIR2
 
        #grant lock1, export2
-       $SETSTRIPE -i -0 $DIR2/$tfile || return 1
-       $MULTIOP $DIR2/$tfile Ow  || return 2
+       $LFS setstripe -i -0 $DIR2/$tfile || error "setstripe failed"
+       $MULTIOP $DIR2/$tfile Ow  || error "multiop failed"
 
 #define OBD_FAIL_LDLM_BL_EVICT            0x31e
        do_facet ost $LCTL set_param fail_loc=0x31e
@@ -1583,7 +1591,8 @@ test_66()
        do_nodes $list $LCTL set_param fail_loc=0x80000136
 
        #initiate the re-connect & re-send
-       local mdccli=$($LCTL dl | awk '/-MDT0000-mdc-/ {print $4;}')
+       local mdtname="MDT0000"
+       local mdccli=$($LCTL dl | grep "${mdtname}-mdc" | awk '{print $4;}')
        local conn_uuid=$($LCTL get_param -n mdc.${mdccli}.conn_uuid)
        $LCTL set_param "mdc.${mdccli}.import=connection=${conn_uuid}"
        sleep 2
@@ -1931,7 +1940,7 @@ test_105()
        # Since the client just mounted, its last_rcvd entry is not on disk.
        # Send an RPC so exp_need_sync forces last_rcvd to commit this export
        # so the client can reconnect during OST recovery (LU-924, LU-1582)
-       $SETSTRIPE -i 0 $DIR/$tfile
+       $LFS setstripe -i 0 $DIR/$tfile
        dd if=/dev/zero of=$DIR/$tfile bs=1M count=1 conv=sync
 
         # make sure MGS's state is Partial
@@ -2033,7 +2042,7 @@ run_test 107 "drop reint reply, then restart MDT"
 
 test_108() {
        mkdir -p $DIR/$tdir
-       $SETSTRIPE -c 1 -i 0 $DIR/$tdir
+       $LFS setstripe -c 1 -i 0 $DIR/$tdir
 
        dd if=/dev/zero of=$DIR/$tdir/$tfile bs=1M count=256 &
        local dd_pid=$!
@@ -2096,7 +2105,7 @@ test_110c () {
        drop_update_reply $mdtidx "$LFS mkdir -i $mdtidx -c2 $remote_dir" ||
                error "lfs mkdir failed"
 
-       diridx=$($GETSTRIPE -m $remote_dir)
+       diridx=$($LFS getstripe -m $remote_dir)
        [ $diridx -eq $mdtidx ] || error "$diridx != $mdtidx"
 
        rm -rf $DIR/$tdir || error "rmdir failed"
@@ -2671,7 +2680,7 @@ test_132() {
 
        rm -f $DIR/$tfile
        # get a lock on client so that export would reach the stale list
-       $SETSTRIPE -i 0 $DIR/$tfile || error "setstripe failed"
+       $LFS setstripe -i 0 $DIR/$tfile || error "setstripe failed"
        dd if=/dev/zero of=$DIR/$tfile bs=4096 count=1 conv=fsync ||
                error "dd failed"
 
@@ -2703,7 +2712,7 @@ test_131() {
 
        rm -f $DIR/$tfile
        # get a lock on client so that export would reach the stale list
-       $SETSTRIPE -i 0 $DIR/$tfile || error "setstripe failed"
+       $LFS setstripe -i 0 $DIR/$tfile || error "setstripe failed"
        dd if=/dev/zero of=$DIR/$tfile count=1 || error "dd failed"
 
        # another IO under the same lock
@@ -2847,6 +2856,34 @@ test_136() {
 }
 run_test 136 "changelog_deregister leaving pending records"
 
+test_137() {
+       df $DIR
+       mkdir -p $DIR/d1
+       mkdir -p $DIR/d2
+       dd if=/dev/zero of=$DIR/d1/$tfile bs=4096 count=1
+       dd if=/dev/zero of=$DIR/d2/$tfile bs=4096 count=1
+       cancel_lru_locks osc
+
+       #define OBD_FAIL_PTLRPC_RESEND_RACE      0x525
+       do_facet $SINGLEMDS "lctl set_param fail_loc=0x80000525"
+
+       # RPC1: any reply is to be delayed to disable last_xid logic
+       ln $DIR/d1/$tfile $DIR/d1/f2 &
+       sleep 1
+
+       # RPC2: setattr1 reply is delayed & resent
+       # original reply comes to client; the resend get asleep
+       chmod 666 $DIR/d2/$tfile
+
+       # RPC3: setattr2 on the same file; run ahead of RPC2 resend
+       chmod 777 $DIR/d2/$tfile
+
+       # RPC2 resend wakes up
+       sleep 5
+       [ $(stat -c "%a" $DIR/d2/$tfile) == 777 ] || error "resend got applied"
+}
+run_test 137 "late resend must be skipped if already applied"
+
 complete $SECONDS
 check_and_cleanup_lustre
 exit_status