Whamcloud - gitweb
LU-1028 tests: regrab some grant after oos test
authorJinshan Xiong <jinshan.xiong@intel.com>
Fri, 17 Aug 2012 17:15:33 +0000 (10:15 -0700)
committerOleg Drokin <green@whamcloud.com>
Thu, 4 Oct 2012 18:59:09 +0000 (14:59 -0400)
After out-of-space test, the client can see a state that avail_grant,
dirty_bytes and lost_grant are zero. In this case, page_mkwrite()
won't work because it can't allocate any grant and this affects fsx
test.

This problem is unlikely to be seen in real world. Therefore, we
wrote a small piece of data to each OSTs through each client mount
to reallocate grant.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I1d71af0a80491855cf6328a407dd417954c4e60e
Reviewed-on: http://review.whamcloud.com/3711
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: wangdi <di.wang@whamcloud.com>
lustre/tests/sanityn.sh

index fbc8bf7..d1ad569 100644 (file)
@@ -328,13 +328,35 @@ test_15() {       # bug 974 - ENOSPC
 }
 run_test 15 "test out-of-space with multiple writers ==========="
 
+COUNT=${COUNT:-2500}
+# The FSXNUM reduction for ZFS is needed until ORI-487 is fixed.
+# We don't want to skip it entirely, but ZFS is VERY slow and cannot
+# pass a 2500 operation dual-mount run within the time limit.
+if [ "$OSTFSTYPE" = "zfs" ]; then
+       FSXNUM=$((COUNT / 5))
+       FSXP=1
+elif [ "$SLOW" = "yes" ]; then
+       FSXNUM=$((COUNT * 5))
+       FSXP=500
+else
+       FSXNUM=$COUNT
+       FSXP=100
+fi
+
 test_16() {
-       rm -f $MOUNT1/fsxfile
-       lfs setstripe $MOUNT1/fsxfile -c -1 # b=10919
-       fsx -c 50 -p 100 -N 2500 -l $((SIZE * 256)) -S 0 $FSXOPT \
-               $MOUNT1/fsxfile $MOUNT2/fsxfile
+       local file1=$DIR1/$tfile
+       local file2=$DIR2/$tfile
+
+       # to allocate grant because it may run out due to test_15.
+       lfs setstripe -c -1 $file1
+       dd if=/dev/zero of=$file1 bs=$STRIPE_BYTES count=$OSTCOUNT oflag=sync
+       dd if=/dev/zero of=$file2 bs=$STRIPE_BYTES count=$OSTCOUNT oflag=sync
+       rm -f $file1
+
+       lfs setstripe -c -1 $file1 # b=10919
+       fsx -c 50 -p $FSXP -N $FSXNUM -l $((SIZE * 256)) -S 0 $file1 $file2
 }
-run_test 16 "2500 iterations of dual-mount fsx ================="
+run_test 16 "$FSXNUM iterations of dual-mount fsx"
 
 test_17() { # bug 3513, 3667
        remote_ost_nodsh && skip "remote OST with nodsh" && return