]>
Commit | Line | Data |
---|---|---|
c17d3b5c | 1 | # An array is assembled incompletely. |
2 | # The previously missing disks are then added again. | |
3 | # Nothing is written, so this should work cleanly. | |
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 | |
39 | for d in $dev10 $dev8; do | |
40 | mdadm -E $d>$tmp | |
41 | for x in 0 1; do | |
42 | egrep 'state\['$x'\] : Optimal, Consistent' $tmp || { | |
43 | ret=1 | |
44 | echo ERROR: $member0 has unexpected state on $d | |
45 | } | |
46 | done | |
47 | if [ x$(egrep -c 'active/Online$' $tmp) != x4 ]; then | |
48 | ret=1 | |
49 | echo ERROR: unexpected number of online disks on $d | |
50 | fi | |
51 | done | |
52 | ||
53 | if [ $ret -ne 0 ]; then | |
54 | mdadm -E $dev10 | |
55 | mdadm -E $dev8 | |
56 | fi | |
57 | rm -f $tmp /var/tmp/mdmon.log | |
58 | [ $ret -eq 0 ] |