]> git.ipfire.org Git - thirdparty/mdadm.git/blob - tests/10ddf-fail-readd
Free map to avoid resource leak issues
[thirdparty/mdadm.git] / tests / 10ddf-fail-readd
1 # Simple fail / re-add test
2 . tests/env-ddf-template
3
4 tmp=$(mktemp /tmp/mdtest-XXXXXX)
5 rm -f $tmp
6
7 mdadm --zero-superblock $dev8 $dev9
8 mdadm -CR $container -e ddf -l container -n 2 $dev8 $dev9
9
10 mdadm -CR $member0 -l raid1 -n 2 $container
11 #$dir/mdadm -CR $member0 -l raid1 -n 2 $container >/tmp/mdmon.txt 2>&1
12
13 mke2fs -F $member0
14 check wait
15
16 set -- $(get_raiddisks $member0)
17 fail0=$1
18 mdadm $member0 --fail $fail0
19
20 sleep 1
21 mdadm $container --remove $fail0
22
23 set -- $(get_raiddisks $member0)
24 case $1 in MISSING) shift;; esac
25 good0=$1
26
27 # We re-add the disk now
28 mdadm $container --add $fail0
29
30 sleep 1
31 mdadm --wait $member0 || true
32
33 ret=0
34 set -- $(get_raiddisks $member0)
35 case $1:$2 in
36 $dev8:$dev9|$dev9:$dev8);;
37 *) echo ERROR: bad raid disks "$@"; ret=1;;
38 esac
39
40 mdadm -Ss
41 for x in $@; do
42 mdadm -E $x >$tmp
43 if ! grep -q 'state\[0\] : Optimal, Consistent' $tmp; then
44 echo ERROR: member 0 should be optimal in meta data on $x
45 ret=1
46 fi
47 done
48
49 rm -f $tmp
50 if [ $ret -ne 0 ]; then
51 mdadm -E $dev8
52 mdadm -E $dev9
53 fi
54
55 [ $ret -eq 0 ]