Whamcloud - gitweb
b=19427 correct lmm_object_id and reserve fids for fid-on-OST.
[fs/lustre-release.git] / lustre / tests / replay-single-lmv.sh
1 #!/bin/sh
2
3 set -e
4 #set -v
5
6 #
7 # This test needs to be run on the client
8 #
9
10 LUSTRE=${LUSTRE:-`dirname $0`/..}
11 . $LUSTRE/tests/test-framework.sh
12 init_test_env $@
13 . ${CONFIG:=$LUSTRE/tests/cfg/lmv.sh}
14
15
16 # Skip these tests
17 ALWAYS_EXCEPT=""
18 build_test_filter
19
20 SETUP=${SETUP:-"setup"}
21 CLEANUP=${CLEANUP:-"stopall"}
22
23 if [ "$ONLY" == "cleanup" ]; then
24     lctl set_param debug=0 || true
25     $CLEANUP
26     exit 0
27 fi
28
29 setup() {
30     formatall
31     setupall
32 }
33
34 $SETUP
35
36 if [ "$ONLY" == "setup" ]; then
37     exit 0
38 fi
39
40 mkdir -p $DIR
41
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 equals_msg test complete, cleaning up
112 $CLEANUP
113