]>
Commit | Line | Data |
---|---|---|
d5b8e340 | 1 | # Simple fail / re-add test |
2 | . tests/env-ddf-template | |
3 | ||
4 | tmp=$(mktemp /tmp/mdtest-XXXXXX) | |
5 | rm -f $tmp | |
6 | ||
7 | mdadm --zero-superblock $dev8 $dev9 | |
8 | mdadm -CR $container -e ddf -l container -n 2 $dev8 $dev9 | |
9 | ||
10 | mdadm -CR $member0 -l raid1 -n 2 $container | |
11 | #$dir/mdadm -CR $member0 -l raid1 -n 2 $container >/tmp/mdmon.txt 2>&1 | |
12 | ||
13 | check wait | |
14 | ||
15 | set -- $(get_raiddisks $member0) | |
16 | fail0=$1 | |
17 | mdadm $member0 --fail $fail0 | |
18 | ||
19 | sleep 1 | |
20 | set -- $(get_raiddisks $member0) | |
21 | case $1 in MISSING) shift;; esac | |
22 | good0=$1 | |
23 | ||
24 | # Check that the meta data now show one disk as failed | |
25 | ret=0 | |
26 | for x in $@; do | |
27 | mdadm -E $x >$tmp | |
28 | if ! grep -q 'state\[0\] : Degraded, Consistent' $tmp; then | |
29 | echo ERROR: member 0 should be degraded in meta data on $x | |
30 | ret=1 | |
31 | fi | |
32 | phys=$(grep $x $tmp) | |
33 | case $x:$phys in | |
34 | $fail0:*active/Offline,\ Failed);; | |
35 | $good0:*active/Online);; | |
36 | *) echo ERROR: wrong phys disk state for $x | |
37 | ret=1 | |
38 | ;; | |
39 | esac | |
40 | done | |
41 | ||
42 | mdadm $container --remove $fail0 | |
43 | ||
44 | # We re-add the disk now | |
45 | mdadm $container --add $fail0 | |
46 | ||
47 | sleep 1 | |
48 | mdadm --wait $member0 | |
49 | ||
50 | set -- $(get_raiddisks $member0) | |
51 | case $1:$2 in | |
52 | $dev8:$dev9|$dev9:$dev8);; | |
53 | *) echo ERROR: bad raid disks "$@"; ret=1;; | |
54 | esac | |
55 | ||
56 | mdadm -Ss | |
57 | for x in $@; do | |
58 | mdadm -E $x >$tmp | |
59 | if ! grep -q 'state\[0\] : Optimal, Consistent' $tmp; then | |
60 | echo ERROR: member 0 should be optimal in meta data on $x | |
61 | ret=1 | |
62 | fi | |
63 | done | |
64 | ||
65 | rm -f $tmp | |
66 | if [ $ret -ne 0 ]; then | |
67 | mdadm -E $dev8 | |
68 | mdadm -E $dev9 | |
69 | fi | |
70 | ||
71 | [ $ret -eq 0 ] |