]> git.ipfire.org Git - thirdparty/mdadm.git/blob - tests/10ddf-assemble-missing
tests: handle change to DDF assembly.
[thirdparty/mdadm.git] / tests / 10ddf-assemble-missing
1 # An array is assembled incompletely.
2 # Re missing disks get marked as missing and are not allowed back in
3
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 $dev11; do
40 mdadm -E $d>$tmp
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
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 ]