Whamcloud - gitweb
cfe037536dc93f81196f3129bbab9db8c8d1b177
[fs/lustre-release.git] / lustre / tests / recovery-small.sh
1 #!/bin/sh
2
3 set -e
4
5 LUSTRE=${LUSTRE:-`dirname $0`/..}
6 . $LUSTRE/tests/test-framework.sh
7
8 init_test_env $@
9
10 . ${CONFIG:=$LUSTRE/tests/cfg/local.sh}
11
12 . $LUSTRE/tests/test-framework.sh
13
14 build_test_filter
15
16
17 # Allow us to override the setup if we already have a mounted system by
18 # setting SETUP=" " and CLEANUP=" "
19 SETUP=${SETUP:-"setup"}
20 CLEANUP=${CLEANUP:-"cleanup"}
21
22
23 make_config() {
24     rm -f $XMLCONFIG
25     add_mds mds --dev $MDSDEV --size $MDSSIZE
26     add_lov lov1 mds --stripe_sz $STRIPE_BYTES\
27         --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
28     add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
29     add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE
30     add_client client mds --lov lov1 --path $MOUNT
31 }
32
33 setup() {
34     make_config
35     start ost --reformat $OSTLCONFARGS 
36     start ost2 --reformat $OSTLCONFARGS 
37     [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
38     start mds $MDSLCONFARGS --reformat
39     zconf_mount $MOUNT
40 }
41
42 cleanup() {
43     zconf_umount $MOUNT
44     stop mds ${FORCE} $MDSLCONFARGS
45     stop ost2 ${FORCE} --dump cleanup.log
46     stop ost ${FORCE} --dump cleanup.log
47 }
48
49 replay() {
50     do_mds "sync"
51     do_mds 'echo -e "device \$mds1\\nprobe\\nnotransno\\nreadonly" | lctl'
52     do_client "$1" &
53     shutdown_mds -f
54     start_mds
55     wait
56     do_client "df -h $MOUNT" # trigger failover, if we haven't already
57 }
58
59 if [ ! -z "$EVAL" ]; then
60     eval "$EVAL"
61     exit $?
62 fi
63
64 REFORMAT=--reformat $SETUP
65 unset REFORMAT
66
67 test_1() {
68     drop_request "mcreate $MOUNT/1"  || return 1
69     drop_reply "mcreate $MOUNT/2"    || return 2
70 }
71 run_test 1 "mcreate: drop req, drop rep"
72
73 test_2() {
74     drop_request "tchmod 111 $MOUNT/2"  || return 1
75     drop_reply "tchmod 666 $MOUNT/2"    || return 2
76 }
77 run_test 2 "chmod: drop req, drop rep"
78
79 test_3() {
80     drop_request "statone $MOUNT/2" || return 1
81     drop_reply "statone $MOUNT/2"   || return 2
82 }
83 run_test 3 "stat: drop req, drop rep"
84
85 test_4() {
86     do_facet client "cp /etc/resolv.conf $MOUNT/resolv.conf" || return 1
87     drop_request "cat $MOUNT/resolv.conf > /dev/null"   || return 2
88     drop_reply "cat $MOUNT/resolv.conf > /dev/null"     || return 3
89 }
90 run_test 4 "open: drop req, drop rep"
91
92 test_5() {
93     drop_request "mv $MOUNT/resolv.conf $MOUNT/renamed" || return 1
94     drop_reply "mv $MOUNT/renamed $MOUNT/renamed-again" || return 2
95 }
96 run_test 5 "rename: drop req, drop rep"
97
98 test_6() {
99     drop_request "mlink $MOUNT/renamed-again $MOUNT/link1" || return 1
100     drop_reply "mlink $MOUNT/renamed-again $MOUNT/link2"   || return 2
101 }
102 run_test 6 "link: drop req, drop rep"
103
104 test_7() {
105     drop_request "munlink $MOUNT/link1"   || return 1
106     drop_reply "munlink $MOUNT/link2"     || return 2
107 }
108 run_test 7 "unlink: drop req, drop rep"
109
110
111 #bug 1423
112 test_8() {
113     drop_reply "touch $MOUNT/renamed"    || return 1
114 }
115 run_test 8 "touch: drop rep (bug 1423)"
116
117
118 #bug 1420
119 test_9() {
120     pause_bulk "cp /etc/profile $MOUNT"       || return 1
121     do_facet client "cp /etc/termcap $MOUNT"  || return 2
122     do_facet client "sync"
123     do_facet client "rm $MOUNT/termcap $MOUNT/profile" || return 3
124 }
125 run_test 9 "pause bulk on OST (bug 1420)"
126
127 #bug 1521
128 test_10() {
129     do_facet client mcreate $MOUNT/f10        || return 1
130     drop_bl_callback "chmod 0777 $MOUNT/f10"  || return 2
131     # wait for the mds to evict the client
132     #echo "sleep $(($TIMEOUT*2))"
133     #sleep $(($TIMEOUT*2))
134     do_facet client touch  $MOUNT/f10 || echo "touch failed, evicted"
135     do_facet client checkstat -v -p 0777 $MOUNT/f10  || return 3
136     do_facet client "unlink $MOUNT/f10"
137 }
138 run_test 10 "finish request after client eviction (bug 1521)"
139
140 $CLEANUP