mdadm/tests/10ddf-assemble-missing
NeilBrown a34c8836f0 tests: handle change to DDF assembly.
When a DDF array is assembled with missing devices, those devices
are now alway marked as 'missing' and cannot just re-appear in the array
and be working again.

test must be changed to acknowledge this.

Signed-off-by: NeilBrown <neilb@suse.de>
2014-05-21 11:54:48 +10:00

62 lines
1.3 KiB
Plaintext

# An array is assembled incompletely.
# Re missing disks get marked as missing and are not allowed back in
. tests/env-ddf-template
tmp=$(mktemp /tmp/mdtest-XXXXXX)
rm -f $tmp /var/tmp/mdmon.log
ret=0
mdadm -CR $container -e ddf -n 4 $dev8 $dev9 $dev10 $dev11
ddf_check container 4
mdadm -CR $member1 -n 4 -l 10 $dev8 $dev10 $dev9 $dev11 -z 10000
mdadm -CR $member0 -n 2 -l 1 $dev8 $dev9 -z 10000
mdadm --wait $member0
mdadm --wait $member1
mdadm -Ss
sleep 1
# Add all devices except those for $member0
mdadm -I $dev10
mdadm -I $dev11
# Start runnable members
mdadm -IRs
mdadm -Ss
#[ -f /var/tmp/mdmon.log ] && cat /var/tmp/mdmon.log
# Now reassemble
# This should work because BVDs weren't written to
for d in $dev8 $dev9 $dev10 $dev11; do
mdadm -I $d
done
mdadm -Ss
# Expect consistent state
for d in $dev10 $dev11; do
mdadm -E $d>$tmp
egrep 'state\[0\] : Degraded, Consistent' $tmp || {
ret=1
echo ERROR: $member0 has unexpected state on $d
}
egrep 'state\[1\] : Optimal, Consistent' $tmp || {
ret=1
echo ERROR: $member1 has unexpected state on $d
}
if [ x$(egrep -c 'active/Online$' $tmp) != x2 ]; then
ret=1
echo ERROR: unexpected number of online disks on $d
fi
done
if [ $ret -ne 0 ]; then
mdadm -E $dev10
mdadm -E $dev8
fi
rm -f $tmp /var/tmp/mdmon.log
[ $ret -eq 0 ]