Whamcloud - gitweb
LU-13577 wbc: reimplement mkdir() by using intent lock
[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 init_logging
9
10 # bug number for skipped test:
11 ALWAYS_EXCEPT="REPLAY_SINGLE_LMV_EXCEPT "
12 build_test_filter
13
14 SETUP=${SETUP:-"setup"}
15 CLEANUP=${CLEANUP:-"stopall"}
16
17 if [ "$ONLY" == "cleanup" ]; then
18         lctl set_param debug=0 || true
19         $CLEANUP
20         exit 0
21 fi
22
23 setup() {
24         formatall
25         setupall
26 }
27
28 $SETUP
29
30 if [ "$ONLY" == "setup" ]; then
31     exit 0
32 fi
33
34 mkdir -p $DIR
35
36 force_new_seq_all
37
38 test_0() {
39     replay_barrier mds1
40     fail mds1
41 }
42 run_test 0 "empty replay"
43
44 test_0b() {
45     # this test attempts to trigger a race in the precreation code, 
46     # and must run before any other objects are created on the filesystem
47     fail ost1
48     createmany -o $DIR/$tfile 20 || return 1
49     unlinkmany $DIR/$tfile 20 || return 2
50 }
51 run_test 0b "ensure object created after recover exists. (3284)"
52
53 test_1a() {
54     mkdir $DIR/dir01
55     replay_barrier mds2
56     $CHECKSTAT -t dir $DIR/dir01 || return 1
57     rmdir $DIR/dir01
58     fail mds2
59     stat $DIR/dir01
60 }
61 run_test 1a "unlink cross-node dir (fail mds with inode)"
62
63 test_1b() {
64     mkdir $DIR/dir11
65     replay_barrier mds1
66     $CHECKSTAT -t dir $DIR/dir11 || return 1
67     rmdir $DIR/dir11
68     fail mds1
69     stat $DIR/dir11
70 }
71 run_test 1b "unlink cross-node dir (fail mds with name)"
72
73 test_2a() {
74     mkdir $DIR/dir21
75     createmany -o $DIR/dir21/f 3000
76     sleep 10
77     $CHECKSTAT -t dir $DIR/dir21 || return 1
78     $CHECKSTAT -t file $DIR/dir21/f1002 || return 1
79     replay_barrier mds1
80     rm $DIR/dir21/f1002
81     fail mds1
82     stat $DIR/dir21/f1002
83 }
84 run_test 2a "unlink cross-node file (fail mds with name)"
85
86 test_3a() {
87     replay_barrier mds2
88     mkdir $DIR/dir3a1
89     $LCTL mark "FAILOVER mds2"
90     fail mds2
91     stat $DIR
92     $CHECKSTAT -t dir $DIR/dir3a1 || return 1
93 }
94 run_test 3a "mkdir cross-node dir (fail mds with inode)"
95
96 test_3b() {
97     replay_barrier mds1
98     mkdir $DIR/dir3b1
99     $LCTL mark "FAILOVER mds1"
100     fail mds1
101     stat $DIR
102     $CHECKSTAT -t dir $DIR/dir3b1 || return 1
103 }
104 run_test 3b "mkdir cross-node dir (fail mds with inode)"
105
106 complete_test $SECONDS
107 $CLEANUP
108