Whamcloud - gitweb
b=3031
[fs/lustre-release.git] / lustre / tests / sanity-ldlm.sh
1 #!/bin/bash
2
3 set -e
4
5 SRCDIR=`dirname $0`
6 PATH=$PWD/$SRCDIR:$SRCDIR:$SRCDIR/../utils:$PATH
7
8 MOUNT=${MOUNT:-/mnt/lustre}
9 DIR=${DIR:-$MOUNT}
10 export NAME=$NAME
11 clean() {
12         echo -n "cln.."
13         sh llmountcleanup.sh > /dev/null || exit 20
14 }
15 CLEAN=${CLEAN:-clean}
16 start() {
17         echo -n "mnt.."
18         sh llrmount.sh > /dev/null || exit 10
19         echo "done"
20 }
21 START=${START:-start}
22
23 log() {
24         echo "$*"
25         lctl mark "$*" || /bin/true
26 }
27
28 pass() {
29     echo PASS
30 }
31
32 mount | grep $MOUNT || sh llmount.sh
33
34 log '== drop ldlm request  ======================== test 1'
35 echo 0x302 > /proc/sys/lustre/fail_loc
36 echo 3 > /proc/sys/lustre/timeout
37 touch $DIR/f &
38 sleep 5
39 echo 0 > /proc/sys/lustre/fail_loc
40 lctl --device 6 recover
41 pass
42 $CLEAN
43 $START
44
45 log '== drop ldlm reply (bug 1139) ================ test 2'
46 echo 0x213 > /proc/sys/lustre/fail_loc
47 echo 3 > /proc/sys/lustre/timeout
48 touch $DIR/f
49 pass
50 $CLEAN
51 $START
52
53 log '== drop reply after completion (bug 1068) ==== test 3'
54 touch $DIR/f
55 stat $DIR/f
56 echo 0x213 > /proc/sys/lustre/fail_loc
57 echo 3 > /proc/sys/lustre/timeout
58 echo foo >> $DIR/f
59 pass
60 $CLEAN
61 $START