5 LUSTRE=${LUSTRE:-`dirname $0`/..}
6 LTESTDIR=${LTESTDIR:-"$LUSTRE/../ltest"}
7 PATH=$PATH:$LUSTRE/utils:$LUSTRE/tests
9 . $LTESTDIR/functional/llite/common/common.sh
11 # Allow us to override the setup if we already have a mounted system by
12 # setting SETUP=" " and CLEANUP=" "
13 SETUP=${SETUP:-"setup"}
14 CLEANUP=${CLEANUP:-"cleanup"}
18 # XXX I wish all this stuff was in some default-config.sh somewhere
19 MDSNODE=${MDSNODE:-mdev6}
20 OSTNODE=${OSTNODE:-mdev7}
21 CLIENT=${CLIENT:-mdev8}
22 NETTYPE=${NETTYPE:-tcp}
23 MOUNTPT=${MOUNTPT:-/mnt/lustre}
24 CONFIG=${CONFIG:-recovery-cleanup.xml}
25 MDSDEV=${MDSDEV:-/tmp/mds1-`hostname`}
26 MDSSIZE=${MDSSIZE:-100000}
27 FSTYPE=${FSTYPE:-ext3}
28 OSTDEV=${OSTDEV:-/tmp/ost1-`hostname`}
29 OSTSIZE=${OSTSIZE:-100000}
30 STRIPE_BYTES=${STRIPE_BYTES:-1048576}
33 $PDSH $MDSNODE "PATH=\$PATH:$LUSTRE/utils:$LUSTRE/tests; cd $PWD; $@" || exit $?
37 $PDSH $CLIENT "PATH=\$PATH:$LUSTRE/utils:$LUSTRE/tests; cd $PWD; $@" || exit $?
41 $PDSH $OSTNODE "PATH=\$PATH:$LUSTRE/utils:$LUSTRE/tests; cd $PWD; $@" || exit $?
45 do_mds "echo 0x121 > /proc/sys/lustre/fail_loc"
46 do_client "$1 & sleep ${TIMEOUT:-5}; sleep 2; kill \$!"
47 do_mds "echo 0 > /proc/sys/lustre/fail_loc"
52 for NODE in $CLIENT $MDSNODE $OSTNODE; do
53 lmc -m $CONFIG --add net --node $NODE --nid `h2$NETTYPE $NODE` \
54 --nettype $NETTYPE || exit 4
56 lmc -m $CONFIG --add mds --node $MDSNODE --mds mds1 --fstype $FSTYPE \
57 --dev $MDSDEV --size $MDSSIZE || exit 5
58 lmc -m $CONFIG --add lov --lov lov1 --mds mds1 --stripe_sz $STRIPE_BYTES \
59 --stripe_cnt 0 --stripe_pattern 0 || exit 6
60 lmc -m $CONFIG --add ost --nspath /mnt/ost_ns --node $OSTNODE \
61 --lov lov1 --dev $OSTDEV --size $OSTSIZE --fstype $FSTYPE || exit 7
62 lmc -m $CONFIG --add mtpt --node $CLIENT --path $MOUNTPT \
63 --mds mds1 --lov lov1 || exit 8
67 do_mds "lconf $@ $CONFIG"
71 do_mds "lconf $@ --cleanup $CONFIG"
75 do_ost "lconf $@ $CONFIG"
79 do_ost "lconf $@ --cleanup $CONFIG"
83 do_client "lconf $@ $CONFIG"
87 do_client "lconf $@ --cleanup $CONFIG"
92 start_mds ${REFORMAT:---reformat}
93 start_ost ${REFORMAT:---reformat}
94 mount_client --timeout=${TIMEOUT:-5} --lustre_upcall=/bin/true
98 do_mds "echo 0 > /proc/sys/lustre/fail_loc"
99 unmount_client $@ || exit 97
100 shutdown_mds $@ || exit 98
101 shutdown_ost $@ || exit 99
105 # wait to make sure we enter recovery
106 # it'd be better if the upcall notified us somehow, I think
107 sleep $(( ${TIMEOUT:-5} + 2 ))
112 unmount_client --force --dump $TMP/recovery-cleanup-`hostname`.log
113 mount_client --timeout=${TIMEOUT:-5} --lustre_upcall=/bin/true
116 if [ ! -z "$ONLY" ]; then
123 drop_request "mcreate /mnt/lustre/1" & wait_for_timeout
126 drop_request "tchmod 111 /mnt/lustre/2" & wait_for_timeout
129 drop_request "statone /mnt/lustre/2" & wait_for_timeout
132 do_client "cp /etc/resolv.conf /mnt/lustre/resolv.conf"
133 drop_request "cat /mnt/lustre/resolv.conf > /dev/null" & wait_for_timeout
136 drop_request "mv /mnt/lustre/resolv.conf /mnt/lustre/renamed" & wait_for_timeout
139 drop_request "mlink /mnt/lustre/renamed-again /mnt/lustre/link1" & wait_for_timeout
142 drop_request "munlink /mnt/lustre/link1" & wait_for_timeout
145 FORCE=--force $CLEANUP '--dump $TMP/recovery-cleanup-`hostname`.log'