]>
Commit | Line | Data |
---|---|---|
c17d3b5c | 1 | # An array is assembled incompletely. |
a34c8836 N |
2 | # Re missing disks get marked as missing and are not allowed back in |
3 | ||
c17d3b5c | 4 | . tests/env-ddf-template |
5 | tmp=$(mktemp /tmp/mdtest-XXXXXX) | |
6 | rm -f $tmp /var/tmp/mdmon.log | |
7 | ret=0 | |
8 | ||
9 | mdadm -CR $container -e ddf -n 4 $dev8 $dev9 $dev10 $dev11 | |
10 | ddf_check container 4 | |
11 | ||
12 | mdadm -CR $member1 -n 4 -l 10 $dev8 $dev10 $dev9 $dev11 -z 10000 | |
13 | mdadm -CR $member0 -n 2 -l 1 $dev8 $dev9 -z 10000 | |
14 | ||
15 | mdadm --wait $member0 | |
16 | mdadm --wait $member1 | |
17 | ||
18 | mdadm -Ss | |
19 | sleep 1 | |
20 | ||
21 | # Add all devices except those for $member0 | |
22 | mdadm -I $dev10 | |
23 | mdadm -I $dev11 | |
24 | ||
25 | # Start runnable members | |
26 | mdadm -IRs | |
27 | mdadm -Ss | |
28 | ||
29 | #[ -f /var/tmp/mdmon.log ] && cat /var/tmp/mdmon.log | |
30 | ||
31 | # Now reassemble | |
32 | # This should work because BVDs weren't written to | |
33 | for d in $dev8 $dev9 $dev10 $dev11; do | |
34 | mdadm -I $d | |
35 | done | |
36 | mdadm -Ss | |
37 | ||
38 | # Expect consistent state | |
a34c8836 | 39 | for d in $dev10 $dev11; do |
c17d3b5c | 40 | mdadm -E $d>$tmp |
a34c8836 N |
41 | egrep 'state\[0\] : Degraded, Consistent' $tmp || { |
42 | ret=1 | |
43 | echo ERROR: $member0 has unexpected state on $d | |
44 | } | |
45 | egrep 'state\[1\] : Optimal, Consistent' $tmp || { | |
46 | ret=1 | |
47 | echo ERROR: $member1 has unexpected state on $d | |
48 | } | |
49 | ||
50 | if [ x$(egrep -c 'active/Online$' $tmp) != x2 ]; then | |
c17d3b5c | 51 | ret=1 |
52 | echo ERROR: unexpected number of online disks on $d | |
53 | fi | |
54 | done | |
55 | ||
56 | if [ $ret -ne 0 ]; then | |
57 | mdadm -E $dev10 | |
58 | mdadm -E $dev8 | |
59 | fi | |
60 | rm -f $tmp /var/tmp/mdmon.log | |
61 | [ $ret -eq 0 ] |