]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-fail-readd
Free map to avoid resource leak issues
[thirdparty/mdadm.git] / tests / 10ddf-fail-readd
CommitLineData
58c96b6b 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
d51e39c0 13mke2fs -F $member0
58c96b6b 14check wait
15
16set -- $(get_raiddisks $member0)
17fail0=$1
18mdadm $member0 --fail $fail0
19
20sleep 1
21mdadm $container --remove $fail0
22
23set -- $(get_raiddisks $member0)
24case $1 in MISSING) shift;; esac
25good0=$1
26
27# We re-add the disk now
28mdadm $container --add $fail0
29
30sleep 1
3c899cab 31mdadm --wait $member0 || true
58c96b6b 32
33ret=0
34set -- $(get_raiddisks $member0)
35case $1:$2 in
36 $dev8:$dev9|$dev9:$dev8);;
37 *) echo ERROR: bad raid disks "$@"; ret=1;;
38esac
39
40mdadm -Ss
41for 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
47done
48
49rm -f $tmp
50if [ $ret -ne 0 ]; then
51 mdadm -E $dev8
52 mdadm -E $dev9
53fi
54
55[ $ret -eq 0 ]