Whamcloud - gitweb
LU-13581 build: xarray and lockdep_is_held const clash
[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 test_0() {
42     replay_barrier mds1
43     fail mds1
44 }
45 run_test 0 "empty replay"
46
47 test_0b() {
48     # this test attempts to trigger a race in the precreation code, 
49     # and must run before any other objects are created on the filesystem
50     fail ost1
51     createmany -o $DIR/$tfile 20 || return 1
52     unlinkmany $DIR/$tfile 20 || return 2
53 }
54 run_test 0b "ensure object created after recover exists. (3284)"
55
56 test_1a() {
57     mkdir $DIR/dir01
58     replay_barrier mds2
59     $CHECKSTAT -t dir $DIR/dir01 || return 1
60     rmdir $DIR/dir01
61     fail mds2
62     stat $DIR/dir01
63 }
64 run_test 1a "unlink cross-node dir (fail mds with inode)"
65
66 test_1b() {
67     mkdir $DIR/dir11
68     replay_barrier mds1
69     $CHECKSTAT -t dir $DIR/dir11 || return 1
70     rmdir $DIR/dir11
71     fail mds1
72     stat $DIR/dir11
73 }
74 run_test 1b "unlink cross-node dir (fail mds with name)"
75
76 test_2a() {
77     mkdir $DIR/dir21
78     createmany -o $DIR/dir21/f 3000
79     sleep 10
80     $CHECKSTAT -t dir $DIR/dir21 || return 1
81     $CHECKSTAT -t file $DIR/dir21/f1002 || return 1
82     replay_barrier mds1
83     rm $DIR/dir21/f1002
84     fail mds1
85     stat $DIR/dir21/f1002
86 }
87 run_test 2a "unlink cross-node file (fail mds with name)"
88
89 test_3a() {
90     replay_barrier mds2
91     mkdir $DIR/dir3a1
92     $LCTL mark "FAILOVER mds2"
93     fail mds2
94     stat $DIR
95     $CHECKSTAT -t dir $DIR/dir3a1 || return 1
96 }
97 run_test 3a "mkdir cross-node dir (fail mds with inode)"
98
99 test_3b() {
100     replay_barrier mds1
101     mkdir $DIR/dir3b1
102     $LCTL mark "FAILOVER mds1"
103     fail mds1
104     stat $DIR
105     $CHECKSTAT -t dir $DIR/dir3b1 || return 1
106 }
107 run_test 3b "mkdir cross-node dir (fail mds with inode)"
108
109 complete $SECONDS
110 $CLEANUP
111