Adding upstream version 4.2.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
16732c81e5
commit
4fd4995b67
279 changed files with 77998 additions and 0 deletions
86
tests/10ddf-fail-spare
Normal file
86
tests/10ddf-fail-spare
Normal file
|
@ -0,0 +1,86 @@
|
|||
# Test suggested by Albert Pauw: Create, fail one disk, have mdmon
|
||||
# activate the spare,
|
||||
# then run create again. Shouldn't use the failed disk for Create,
|
||||
. tests/env-ddf-template
|
||||
|
||||
tmp=$(mktemp /tmp/mdtest-XXXXXX)
|
||||
rm -f $tmp
|
||||
|
||||
mdadm --zero-superblock $dev8 $dev9 $dev10 $dev11 $dev12 $dev13
|
||||
mdadm -CR $container -e ddf -l container -n 5 $dev8 $dev9 $dev10 $dev11 $dev12
|
||||
|
||||
mdadm -CR $member0 -l raid1 -n 2 $container
|
||||
#$dir/mdadm -CR $member0 -l raid1 -n 2 $container >/tmp/mdmon.txt 2>&1
|
||||
|
||||
check wait
|
||||
|
||||
set -- $(get_raiddisks $member0)
|
||||
fail0=$1
|
||||
mdadm --fail $member0 $fail0
|
||||
|
||||
# To make sure the spare is activated, we may have to sleep
|
||||
# 2s has always been enough for me
|
||||
sleep 2
|
||||
check wait
|
||||
|
||||
# This test can succeed both ways - if spare was activated
|
||||
# before new array was created, we see only member 0.
|
||||
# otherwise, we see both, adn member0 is degraded because the
|
||||
# new array grabbed the spare
|
||||
# which case occurs depends on the sleep time above.
|
||||
ret=0
|
||||
if mdadm -CR $member1 -l raid5 -n 3 $container; then
|
||||
# Creation successful - must have been quicker than spare activation
|
||||
|
||||
check wait
|
||||
set -- $(get_raiddisks $member1)
|
||||
if [ $1 = $fail0 -o $2 = $fail0 -o $3 = $fail0 ]; then
|
||||
echo ERROR: $member1 must not contain $fail0: $@
|
||||
ret=1
|
||||
fi
|
||||
d1=$1
|
||||
mdadm -E $d1 >$tmp
|
||||
if ! grep -q 'state\[1\] : Optimal, Consistent' $tmp; then
|
||||
echo ERROR: member 1 should be optimal in meta data
|
||||
ret=1
|
||||
fi
|
||||
state0=Degraded
|
||||
else
|
||||
# Creation unsuccessful - spare was used for member 0
|
||||
state0=Optimal
|
||||
fi
|
||||
|
||||
# need to delay a little bit, sometimes the meta data aren't
|
||||
# up-to-date yet
|
||||
sleep 0.5
|
||||
set -- $(get_raiddisks $member0)
|
||||
if [ $1 = $fail0 -o $2 = $fail0 ]; then
|
||||
echo ERROR: $member0 must not contain $fail0: $@
|
||||
ret=1
|
||||
fi
|
||||
d0=$1
|
||||
|
||||
[ -f $tmp ] || mdadm -E $d0 >$tmp
|
||||
|
||||
if ! grep -q 'state\[0\] : '$state0', Consistent' $tmp; then
|
||||
echo ERROR: member 0 should be $state0 in meta data
|
||||
ret=1
|
||||
fi
|
||||
if ! grep -q 'Offline, Failed' $tmp; then
|
||||
echo ERROR: Failed disk expected in meta data
|
||||
ret=1
|
||||
fi
|
||||
if [ $ret -eq 1 ]; then
|
||||
cat /proc/mdstat
|
||||
mdadm -E $d0
|
||||
mdadm -E $d1
|
||||
mdadm -E $fail0
|
||||
fi
|
||||
|
||||
[ -f /tmp/mdmon.txt ] && {
|
||||
cat /tmp/mdmon.txt
|
||||
rm -f /tmp/mdmon.txt
|
||||
}
|
||||
|
||||
rm -f $tmp
|
||||
[ $ret -eq 0 ]
|
Loading…
Add table
Add a link
Reference in a new issue