Whamcloud - gitweb
LU-11912 tests: SEQ rollover fixes
[fs/lustre-release.git] / lustre / tests / replay-single-lmv.sh
1 #!/bin/bash
2
3 set -e
4
5 LUSTRE=${LUSTRE:-$(dirname $0)/..}
6 . $LUSTRE/tests/test-framework.sh
7 init_test_env "$@"
8
9 # bug number for skipped test:
10 ALWAYS_EXCEPT="REPLAY_SINGLE_LMV_EXCEPT "
11 build_test_filter
12
13 SETUP=${SETUP:-"setup"}
14 CLEANUP=${CLEANUP:-"stopall"}
15
16 if [ "$ONLY" == "cleanup" ]; then
17         lctl set_param debug=0 || true
18         $CLEANUP
19         exit 0
20 fi
21
22 setup() {
23         formatall
24         setupall
25 }
26
27 $SETUP
28
29 if [ "$ONLY" == "setup" ]; then
30     exit 0
31 fi
32
33 mkdir -p $DIR
34
35 # LU-482 Avert LVM and VM inability to flush caches in pre .33 kernels
36 if [ $LINUX_VERSION_CODE -lt $(version_code 2.6.33) ]; then
37     sync
38     do_facet $SINGLEMDS sync
39 fi
40
41 force_new_seq_all
42
43 test_0() {
44     replay_barrier mds1
45     fail mds1
46 }
47 run_test 0 "empty replay"
48
49 test_0b() {
50     # this test attempts to trigger a race in the precreation code, 
51     # and must run before any other objects are created on the filesystem
52     fail ost1
53     createmany -o $DIR/$tfile 20 || return 1
54     unlinkmany $DIR/$tfile 20 || return 2
55 }
56 run_test 0b "ensure object created after recover exists. (3284)"
57
58 test_1a() {
59     mkdir $DIR/dir01
60     replay_barrier mds2
61     $CHECKSTAT -t dir $DIR/dir01 || return 1
62     rmdir $DIR/dir01
63     fail mds2
64     stat $DIR/dir01
65 }
66 run_test 1a "unlink cross-node dir (fail mds with inode)"
67
68 test_1b() {
69     mkdir $DIR/dir11
70     replay_barrier mds1
71     $CHECKSTAT -t dir $DIR/dir11 || return 1
72     rmdir $DIR/dir11
73     fail mds1
74     stat $DIR/dir11
75 }
76 run_test 1b "unlink cross-node dir (fail mds with name)"
77
78 test_2a() {
79     mkdir $DIR/dir21
80     createmany -o $DIR/dir21/f 3000
81     sleep 10
82     $CHECKSTAT -t dir $DIR/dir21 || return 1
83     $CHECKSTAT -t file $DIR/dir21/f1002 || return 1
84     replay_barrier mds1
85     rm $DIR/dir21/f1002
86     fail mds1
87     stat $DIR/dir21/f1002
88 }
89 run_test 2a "unlink cross-node file (fail mds with name)"
90
91 test_3a() {
92     replay_barrier mds2
93     mkdir $DIR/dir3a1
94     $LCTL mark "FAILOVER mds2"
95     fail mds2
96     stat $DIR
97     $CHECKSTAT -t dir $DIR/dir3a1 || return 1
98 }
99 run_test 3a "mkdir cross-node dir (fail mds with inode)"
100
101 test_3b() {
102     replay_barrier mds1
103     mkdir $DIR/dir3b1
104     $LCTL mark "FAILOVER mds1"
105     fail mds1
106     stat $DIR
107     $CHECKSTAT -t dir $DIR/dir3b1 || return 1
108 }
109 run_test 3b "mkdir cross-node dir (fail mds with inode)"
110
111 complete $SECONDS
112 $CLEANUP
113