]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-fail-readd-readonly
Create: tell udev md device is not ready when first created.
[thirdparty/mdadm.git] / tests / 10ddf-fail-readd-readonly
CommitLineData
d5b8e340 1# Simple fail / re-add test
2. tests/env-ddf-template
3
4tmp=$(mktemp /tmp/mdtest-XXXXXX)
5rm -f $tmp
6
7mdadm --zero-superblock $dev8 $dev9
8mdadm -CR $container -e ddf -l container -n 2 $dev8 $dev9
9
10mdadm -CR $member0 -l raid1 -n 2 $container
11#$dir/mdadm -CR $member0 -l raid1 -n 2 $container >/tmp/mdmon.txt 2>&1
12
13check wait
14
15set -- $(get_raiddisks $member0)
16fail0=$1
17mdadm $member0 --fail $fail0
18
19sleep 1
20set -- $(get_raiddisks $member0)
21case $1 in MISSING) shift;; esac
22good0=$1
23
24# Check that the meta data now show one disk as failed
25ret=0
26for x in $@; do
27 mdadm -E $x >$tmp
28 if ! grep -q 'state\[0\] : Degraded, Consistent' $tmp; then
29 echo ERROR: member 0 should be degraded in meta data on $x
30 ret=1
31 fi
32 phys=$(grep $x $tmp)
33 case $x:$phys in
34 $fail0:*active/Offline,\ Failed);;
35 $good0:*active/Online);;
36 *) echo ERROR: wrong phys disk state for $x
37 ret=1
38 ;;
39 esac
40done
41
42mdadm $container --remove $fail0
43
44# We re-add the disk now
45mdadm $container --add $fail0
46
47sleep 1
3c899cab 48mdadm --wait $member0 || true
d5b8e340 49
50set -- $(get_raiddisks $member0)
51case $1:$2 in
52 $dev8:$dev9|$dev9:$dev8);;
53 *) echo ERROR: bad raid disks "$@"; ret=1;;
54esac
55
56mdadm -Ss
57for x in $@; do
58 mdadm -E $x >$tmp
59 if ! grep -q 'state\[0\] : Optimal, Consistent' $tmp; then
60 echo ERROR: member 0 should be optimal in meta data on $x
61 ret=1
62 fi
63done
64
65rm -f $tmp
66if [ $ret -ne 0 ]; then
67 mdadm -E $dev8
68 mdadm -E $dev9
69fi
70
71[ $ret -eq 0 ]