Whamcloud - gitweb
LU-8900 tests: add snapshot in racer tests 99/26199/3
authorFan Yong <fan.yong@intel.com>
Sun, 13 Nov 2016 09:34:10 +0000 (17:34 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 6 Apr 2017 00:59:25 +0000 (00:59 +0000)
To check whether snapshot may cause trouble or not.

Test-Parameters: trivial envdefinitions=SLOW=yes,RACER_ENABLE_SNAPSHOT=true mdtfilesystemtype=zfs ostfilesystemtype=zfs mdscount=2 mdtcount=4 testlist=racer
Test-Parameters: trivial envdefinitions=SLOW=yes,RACER_ENABLE_SNAPSHOT=false mdtfilesystemtype=zfs ostfilesystemtype=zfs mdscount=2 mdtcount=4 testlist=racer
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I09dababec7175c95f1a21519460e75e82ef7bc2f
Reviewed-on: https://review.whamcloud.com/26199
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/tests/Makefile.am
lustre/tests/racer.sh
lustre/tests/racer/lss_create.sh [new file with mode: 0755]
lustre/tests/racer/lss_destroy.sh [new file with mode: 0755]

index d24289f..2508f4e 100644 (file)
@@ -48,6 +48,7 @@ nobase_noinst_SCRIPTS += racer/file_link.sh racer/file_rename.sh racer/file_syml
 nobase_noinst_SCRIPTS += racer/dir_remote.sh racer/dir_migrate.sh racer/file_chmod.sh
 nobase_noinst_SCRIPTS += racer/file_chown.sh racer/file_delxattr.sh racer/file_getxattr.sh
 nobase_noinst_SCRIPTS += racer/file_mknod.sh racer/file_setxattr.sh racer/file_truncate.sh
+nobase_noinst_SCRIPTS += racer/lss_create.sh racer/lss_destroy.sh
 nobase_noinst_SCRIPTS += posix/posix.cfg
 nobase_noinst_DATA = acl/cp.test acl/getfacl-noacl.test acl/inheritance.test
 nobase_noinst_DATA += acl/misc.test acl/permissions.test acl/setfacl.test
index e1bfa0e..9e2bf50 100644 (file)
@@ -36,9 +36,13 @@ elif ((MDSCOUNT > 1 &&
        RACER_ENABLE_REMOTE_DIRS=${RACER_ENABLE_REMOTE_DIRS:-true}
 fi
 
+[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.9.54) ||
+   $(facet_fstype mgs) != zfs ]] && RACER_ENABLE_SNAPSHOT=false
+
 RACER_ENABLE_REMOTE_DIRS=${RACER_ENABLE_REMOTE_DIRS:-false}
 RACER_ENABLE_STRIPED_DIRS=${RACER_ENABLE_STRIPED_DIRS:-false}
 RACER_ENABLE_MIGRATION=${RACER_ENABLE_MIGRATION:-false}
+RACER_ENABLE_SNAPSHOT=${RACER_ENABLE_SNAPSHOT:-true}
 
 check_progs_installed $CLIENTS $racer ||
        { skip_env "$racer not found" && exit 0; }
@@ -81,6 +85,19 @@ test_1() {
                rpids="$rpids $pid"
        done
 
+       local lss_pids=""
+       if $RACER_ENABLE_SNAPSHOT; then
+               lss_gen_conf
+
+               $LUSTRE/tests/racer/lss_create.sh &
+               pid=$!
+               lss_pids="$lss_pids $pid"
+
+               $LUSTRE/tests/racer/lss_destroy.sh &
+               pid=$!
+               lss_pids="$lss_pids $pid"
+       fi
+
        echo racers pids: $rpids
        for pid in $rpids; do
                wait $pid
@@ -91,6 +108,17 @@ test_1() {
                fi
        done
 
+       if $RACER_ENABLE_SNAPSHOT; then
+               killall -q lss_create.sh
+               killall -q lss_destroy.sh
+
+               for pid in $lss_pids; do
+                       wait $pid
+               done
+
+               lss_cleanup
+       fi
+
        return $rrc
 }
 run_test 1 "racer on clients: ${CLIENTS:-$(hostname)} DURATION=$DURATION"
diff --git a/lustre/tests/racer/lss_create.sh b/lustre/tests/racer/lss_create.sh
new file mode 100755 (executable)
index 0000000..ff530f0
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+trap 'kill $(jobs -p)' EXIT
+
+LUSTRE=${LUSTRE:-$(cd $(dirname $0)/../..; echo $PWD)}
+. $LUSTRE/tests/test-framework.sh
+. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+
+while /bin/true; do
+       lsnapshot_create -n lss_$RANDOM || true
+       sleep $((RANDOM % 9 + 11))
+done
diff --git a/lustre/tests/racer/lss_destroy.sh b/lustre/tests/racer/lss_destroy.sh
new file mode 100755 (executable)
index 0000000..72135b4
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+trap 'kill $(jobs -p)' EXIT
+
+LUSTRE=${LUSTRE:-$(cd $(dirname $0)/../..; echo $PWD)}
+. $LUSTRE/tests/test-framework.sh
+. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+
+while /bin/true; do
+       sleep $((RANDOM % 9 + 11))
+       ssname=$(do_facet mgs "$LCTL snapshot_list -F $FSNAME 2>/dev/null" |
+                awk '/snapshot_name.*lss_/ { print $2; exit; }')
+       [ ! -z "$ssname" ] && lsnapshot_destroy -n $ssname -f || true
+done