Adding upstream version 4.2+20230223.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
4fd4995b67
commit
c1504f9531
76 changed files with 2282 additions and 1386 deletions
93
tests/00createnames
Normal file
93
tests/00createnames
Normal file
|
@ -0,0 +1,93 @@
|
|||
set -x -e
|
||||
|
||||
# Test how <devname> and --name= are handled for create mode.
|
||||
# We need to check three properties, generated from those parameters:
|
||||
# - devnode name
|
||||
# - link in /dev/md/ (MD_DEVNAME property from --detail --export)
|
||||
# - name in metadata (MD_NAME property from --examine --export)
|
||||
|
||||
function _verify() {
|
||||
local DEVNODE_NAME="$1"
|
||||
local WANTED_LINK="$2"
|
||||
local WANTED_NAME="$3"
|
||||
|
||||
local RES="$(mdadm -D --export $DEVNODE_NAME | grep MD_DEVNAME)"
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo "Cannot get details for $DEVNODE_NAME - unexpected devnode."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$WANTED_LINK" != "empty" ]]; then
|
||||
local EXPECTED="MD_DEVNAME=$WANTED_LINK"
|
||||
if [[ "$RES" != "$EXPECTED" ]]; then
|
||||
echo "$RES doesn't match $EXPECTED."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
local RES="$(mdadm -E --export $dev0 | grep MD_NAME)"
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo "Cannot get metadata from $dev0."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local EXPECTED="MD_NAME=$(hostname):$WANTED_NAME"
|
||||
if [[ "$RES" != "$EXPECTED" ]]; then
|
||||
echo "$RES doesn't match $EXPECTED."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function _create() {
|
||||
local DEVNAME=$1
|
||||
local NAME=$2
|
||||
|
||||
if [[ -z "$NAME" ]]; then
|
||||
mdadm -CR "$DEVNAME" -l0 -n 1 $dev0 --force
|
||||
else
|
||||
mdadm -CR "$DEVNAME" --name="$NAME" -l0 -n 1 $dev0 --force
|
||||
fi
|
||||
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo "Cannot create device."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# The most trivial case.
|
||||
_create "/dev/md/name"
|
||||
_verify "/dev/md127" "name" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
_create "name"
|
||||
_verify "/dev/md127" "name" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
# Use 'mdX' as name.
|
||||
_create "/dev/md/md0"
|
||||
_verify "/dev/md127" "md0" "md0"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
_create "md0"
|
||||
_verify "/dev/md127" "md0" "md0"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
# <devnode> is used to create MD_DEVNAME but, name is used to create MD_NAME.
|
||||
_create "/dev/md/devnode" "name"
|
||||
_verify "/dev/md127" "devnode" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
_create "devnode" "name"
|
||||
_verify "/dev/md127" "devnode" "name"
|
||||
mdadm -S "/dev/md127"
|
||||
|
||||
# Devnode points to /dev/ directory. MD_DEVNAME doesn't exist.
|
||||
_create "/dev/md0"
|
||||
_verify "/dev/md0" "empty" "0"
|
||||
mdadm -S "/dev/md0"
|
||||
|
||||
# Devnode points to /dev/ directory and name is set.
|
||||
_create "/dev/md0" "name"
|
||||
_verify "/dev/md0" "empty" "name"
|
||||
mdadm -S "/dev/md0"
|
|
@ -6,11 +6,9 @@ check raid0
|
|||
testdev $md0 3 $mdsize2_l 512
|
||||
mdadm -S $md0
|
||||
|
||||
# now with version-0.90 superblock
|
||||
# verify raid0 with layouts fail for 0.90
|
||||
mdadm -CR $md0 -e0.90 -l0 -n4 $dev0 $dev1 $dev2 $dev3
|
||||
check raid0
|
||||
testdev $md0 4 $mdsize0 512
|
||||
mdadm -S $md0
|
||||
check opposite_result
|
||||
|
||||
# now with no superblock
|
||||
mdadm -B $md0 -l0 -n5 $dev0 $dev1 $dev2 $dev3 $dev4
|
||||
|
@ -22,8 +20,8 @@ mdadm -S $md0
|
|||
# now same again with different chunk size
|
||||
for chunk in 4 32 256
|
||||
do
|
||||
mdadm -CR $md0 -e0.90 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2
|
||||
check raid0
|
||||
mdadm -CR $md0 -e0.90 -l linear --chunk $chunk -n3 $dev0 $dev1 $dev2
|
||||
check linear
|
||||
testdev $md0 3 $mdsize0 $chunk
|
||||
mdadm -S $md0
|
||||
|
||||
|
|
|
@ -4,10 +4,15 @@ for metadata in 0.9 1.0 1.1 1.2
|
|||
do
|
||||
for level in linear raid0 raid1 raid4 raid5 raid6 raid10
|
||||
do
|
||||
if [[ $metadata == "0.9" && $level == "raid0" ]];
|
||||
then
|
||||
continue
|
||||
fi
|
||||
mdadm -CR $md0 -l $level -n 4 --metadata=$metadata \
|
||||
$dev1 $dev2 $dev3 $dev4 --assume-clean
|
||||
check nosync
|
||||
check $level
|
||||
udevadm settle
|
||||
mdadm -ro $md0
|
||||
check readonly
|
||||
state=$(cat /sys/block/md0/md/array_state)
|
||||
|
|
7
tests/01r5integ.broken
Normal file
7
tests/01r5integ.broken
Normal file
|
@ -0,0 +1,7 @@
|
|||
fails rarely
|
||||
|
||||
Fails about 1 in every 30 runs with a sha mismatch error:
|
||||
|
||||
c49ab26e1b01def7874af9b8a6d6d0c29fdfafe6 /dev/md0 does not match
|
||||
15dc2f73262f811ada53c65e505ceec9cf025cb9 /dev/md0 with /dev/loop3
|
||||
missing
|
7
tests/01raid6integ.broken
Normal file
7
tests/01raid6integ.broken
Normal file
|
@ -0,0 +1,7 @@
|
|||
fails infrequently
|
||||
|
||||
Fails about 1 in 5 with a sha mismatch:
|
||||
|
||||
8286c2bc045ae2cfe9f8b7ae3a898fa25db6926f /dev/md0 does not match
|
||||
a083a0738b58caab37fd568b91b177035ded37df /dev/md0 with /dev/loop2 and
|
||||
/dev/loop3 missing
|
|
@ -20,4 +20,6 @@ do
|
|||
testdev $md0 3 $sz 1
|
||||
|
||||
mdadm -S $md0
|
||||
mdadm --zero /dev/loop2
|
||||
mdadm --zero /dev/loop3
|
||||
done
|
||||
|
|
|
@ -68,9 +68,9 @@ mdadm -S $md2
|
|||
### Now for version 0...
|
||||
|
||||
mdadm --zero-superblock $dev0 $dev1 $dev2
|
||||
mdadm -CR $md2 -l0 --metadata=0.90 -n3 $dev0 $dev1 $dev2
|
||||
check raid0
|
||||
tst="testdev $md2 3 $mdsize0 512"
|
||||
mdadm -CR $md2 -llinear --metadata=0.90 -n3 $dev0 $dev1 $dev2
|
||||
check linear
|
||||
tst="testdev $md2 3 $mdsize0 1"
|
||||
$tst
|
||||
|
||||
uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
# create a raid0, re-assemble with a different super-minor
|
||||
mdadm -CR -e 0.90 $md0 -l0 -n3 $dev0 $dev1 $dev2
|
||||
testdev $md0 3 $mdsize0 512
|
||||
mdadm -CR -e 0.90 $md0 -llinear -n3 $dev0 $dev1 $dev2
|
||||
testdev $md0 3 $mdsize0 1
|
||||
minor1=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
|
||||
mdadm -S /dev/md0
|
||||
|
||||
|
|
7
tests/04r5swap.broken
Normal file
7
tests/04r5swap.broken
Normal file
|
@ -0,0 +1,7 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
|
||||
mdadm: /dev/loop0 has no superblock - assembly aborted
|
||||
|
||||
ERROR: no recovery happening
|
|
@ -8,10 +8,14 @@ set -xe
|
|||
|
||||
dlist="$dev0 $dev1 $dev2 $dev3"
|
||||
|
||||
for ls in raid0/4 linear/4 raid1/1 raid5/3 raid6/2
|
||||
for ls in linear/4 raid1/1 raid5/3 raid6/2
|
||||
do
|
||||
s=${ls#*/} l=${ls%/*}
|
||||
mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist
|
||||
if [[ $l == 'raid1' ]]; then
|
||||
mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 $dlist
|
||||
else
|
||||
mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist
|
||||
fi
|
||||
testdev $md0 $s 19904 64
|
||||
mdadm -S $md0
|
||||
mdadm -A $md0 --update=metadata $dlist
|
||||
|
|
8
tests/07autoassemble.broken
Normal file
8
tests/07autoassemble.broken
Normal file
|
@ -0,0 +1,8 @@
|
|||
always fails
|
||||
|
||||
Prints lots of messages, but the array doesn't assemble. Error
|
||||
possibly related to:
|
||||
|
||||
mdadm: /dev/md/1 is busy - skipping
|
||||
mdadm: no recogniseable superblock on /dev/md/testing:0
|
||||
mdadm: /dev/md/2 is busy - skipping
|
5
tests/07autodetect.broken
Normal file
5
tests/07autodetect.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
always fails
|
||||
|
||||
Fails with error:
|
||||
|
||||
ERROR: no resync happening
|
9
tests/07changelevelintr.broken
Normal file
9
tests/07changelevelintr.broken
Normal file
|
@ -0,0 +1,9 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
|
||||
mdadm: this change will reduce the size of the array.
|
||||
use --grow --array-size first to truncate array.
|
||||
e.g. mdadm --grow /dev/md0 --array-size 56832
|
||||
|
||||
ERROR: no reshape happening
|
9
tests/07changelevels.broken
Normal file
9
tests/07changelevels.broken
Normal file
|
@ -0,0 +1,9 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
|
||||
mdadm: /dev/loop0 is smaller than given size. 18976K < 19968K + metadata
|
||||
mdadm: /dev/loop1 is smaller than given size. 18976K < 19968K + metadata
|
||||
mdadm: /dev/loop2 is smaller than given size. 18976K < 19968K + metadata
|
||||
|
||||
ERROR: /dev/md0 isn't a block device.
|
45
tests/07reshape5intr.broken
Normal file
45
tests/07reshape5intr.broken
Normal file
|
@ -0,0 +1,45 @@
|
|||
always fails
|
||||
|
||||
This patch, recently added to md-next causes the test to always fail:
|
||||
|
||||
7e6ba434cc60 ("md: don't unregister sync_thread with reconfig_mutex
|
||||
held")
|
||||
|
||||
The new error is simply:
|
||||
|
||||
ERROR: no reshape happening
|
||||
|
||||
Before the patch, the error seen is below.
|
||||
|
||||
--
|
||||
|
||||
fails infrequently
|
||||
|
||||
Fails roughly 1 in 4 runs with errors:
|
||||
|
||||
mdadm: Merging with already-assembled /dev/md/0
|
||||
mdadm: cannot re-read metadata from /dev/loop6 - aborting
|
||||
|
||||
ERROR: no reshape happening
|
||||
|
||||
Also have seen a random deadlock:
|
||||
|
||||
INFO: task mdadm:109702 blocked for more than 30 seconds.
|
||||
Not tainted 5.18.0-rc3-eid-vmlocalyes-dbg-00095-g3c2b5427979d #2040
|
||||
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
|
||||
task:mdadm state:D stack: 0 pid:109702 ppid: 1 flags:0x00004000
|
||||
Call Trace:
|
||||
<TASK>
|
||||
__schedule+0x67e/0x13b0
|
||||
schedule+0x82/0x110
|
||||
mddev_suspend+0x2e1/0x330
|
||||
suspend_lo_store+0xbd/0x140
|
||||
md_attr_store+0xcb/0x130
|
||||
sysfs_kf_write+0x89/0xb0
|
||||
kernfs_fop_write_iter+0x202/0x2c0
|
||||
new_sync_write+0x222/0x330
|
||||
vfs_write+0x3bc/0x4d0
|
||||
ksys_write+0xd9/0x180
|
||||
__x64_sys_write+0x43/0x50
|
||||
do_syscall_64+0x3b/0x90
|
||||
entry_SYSCALL_64_after_hwframe+0x44/0xae
|
31
tests/07revert-grow.broken
Normal file
31
tests/07revert-grow.broken
Normal file
|
@ -0,0 +1,31 @@
|
|||
always fails
|
||||
|
||||
This patch, recently added to md-next causes the test to always fail:
|
||||
|
||||
7e6ba434cc60 ("md: don't unregister sync_thread with reconfig_mutex held")
|
||||
|
||||
The errors are:
|
||||
|
||||
mdadm: No active reshape to revert on /dev/loop0
|
||||
ERROR: active raid5 not found
|
||||
|
||||
Before the patch, the error seen is below.
|
||||
|
||||
--
|
||||
|
||||
fails rarely
|
||||
|
||||
Fails about 1 in every 30 runs with errors:
|
||||
|
||||
mdadm: Merging with already-assembled /dev/md/0
|
||||
mdadm: backup file /tmp/md-backup inaccessible: No such file or directory
|
||||
mdadm: failed to add /dev/loop1 to /dev/md/0: Invalid argument
|
||||
mdadm: failed to add /dev/loop2 to /dev/md/0: Invalid argument
|
||||
mdadm: failed to add /dev/loop3 to /dev/md/0: Invalid argument
|
||||
mdadm: failed to add /dev/loop0 to /dev/md/0: Invalid argument
|
||||
mdadm: /dev/md/0 assembled from 1 drive - need all 5 to start it
|
||||
(use --run to insist).
|
||||
|
||||
grep: /sys/block/md*/md/sync_action: No such file or directory
|
||||
|
||||
ERROR: active raid5 not found
|
9
tests/07revert-shrink.broken
Normal file
9
tests/07revert-shrink.broken
Normal file
|
@ -0,0 +1,9 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
|
||||
mdadm: this change will reduce the size of the array.
|
||||
use --grow --array-size first to truncate array.
|
||||
e.g. mdadm --grow /dev/md0 --array-size 53760
|
||||
|
||||
ERROR: active raid5 not found
|
12
tests/07testreshape5.broken
Normal file
12
tests/07testreshape5.broken
Normal file
|
@ -0,0 +1,12 @@
|
|||
always fails
|
||||
|
||||
Test seems to run 'test_stripe' at $dir directory, but $dir is never
|
||||
set. If $dir is adjusted to $PWD, the test still fails with:
|
||||
|
||||
mdadm: /dev/loop2 is not suitable for this array.
|
||||
mdadm: create aborted
|
||||
++ return 1
|
||||
++ cmp -s -n 8192 /dev/md0 /tmp/RandFile
|
||||
++ echo cmp failed
|
||||
cmp failed
|
||||
++ exit 2
|
6
tests/09imsm-assemble.broken
Normal file
6
tests/09imsm-assemble.broken
Normal file
|
@ -0,0 +1,6 @@
|
|||
fails infrequently
|
||||
|
||||
Fails roughly 1 in 10 runs with errors:
|
||||
|
||||
mdadm: /dev/loop2 is still in use, cannot remove.
|
||||
/dev/loop2 removal from /dev/md/container should have succeeded
|
5
tests/09imsm-create-fail-rebuild.broken
Normal file
5
tests/09imsm-create-fail-rebuild.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
always fails
|
||||
|
||||
Fails with error:
|
||||
|
||||
**Error**: Array size mismatch - expected 3072, actual 16384
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
. tests/env-imsm-template
|
||||
|
||||
# create raid arrays with varying degress of overlap
|
||||
mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5
|
||||
imsm_check container 6
|
||||
|
||||
size=1024
|
||||
level=1
|
||||
num_disks=2
|
||||
mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size
|
||||
mdadm -CR $member1 $dev1 $dev2 -n $num_disks -l $level -z $size
|
||||
mdadm -CR $member2 $dev2 $dev3 -n $num_disks -l $level -z $size
|
||||
mdadm -CR $member3 $dev3 $dev4 -n $num_disks -l $level -z $size
|
||||
mdadm -CR $member4 $dev4 $dev5 -n $num_disks -l $level -z $size
|
||||
|
||||
udevadm settle
|
||||
|
||||
offset=0
|
||||
imsm_check member $member0 $num_disks $level $size 1024 $offset
|
||||
offset=$((offset+size+4096))
|
||||
imsm_check member $member1 $num_disks $level $size 1024 $offset
|
||||
offset=$((offset+size+4096))
|
||||
imsm_check member $member2 $num_disks $level $size 1024 $offset
|
||||
offset=$((offset+size+4096))
|
||||
imsm_check member $member3 $num_disks $level $size 1024 $offset
|
||||
offset=$((offset+size+4096))
|
||||
imsm_check member $member4 $num_disks $level $size 1024 $offset
|
7
tests/09imsm-overlap.broken
Normal file
7
tests/09imsm-overlap.broken
Normal file
|
@ -0,0 +1,7 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
|
||||
**Error**: Offset mismatch - expected 15360, actual 0
|
||||
**Error**: Offset mismatch - expected 15360, actual 0
|
||||
/dev/md/vol3 failed check
|
6
tests/10ddf-assemble-missing.broken
Normal file
6
tests/10ddf-assemble-missing.broken
Normal file
|
@ -0,0 +1,6 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
|
||||
ERROR: /dev/md/vol0 has unexpected state on /dev/loop10
|
||||
ERROR: unexpected number of online disks on /dev/loop10
|
7
tests/10ddf-fail-create-race.broken
Normal file
7
tests/10ddf-fail-create-race.broken
Normal file
|
@ -0,0 +1,7 @@
|
|||
usually fails
|
||||
|
||||
Fails about 9 out of 10 times with many errors:
|
||||
|
||||
mdadm: cannot open MISSING: No such file or directory
|
||||
ERROR: non-degraded array found
|
||||
ERROR: disk 0 not marked as failed in meta data
|
5
tests/10ddf-fail-two-spares.broken
Normal file
5
tests/10ddf-fail-two-spares.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
fails infrequently
|
||||
|
||||
Fails roughly 1 in 3 with error:
|
||||
|
||||
ERROR: /dev/md/vol1 should be optimal in meta data
|
9
tests/10ddf-incremental-wrong-order.broken
Normal file
9
tests/10ddf-incremental-wrong-order.broken
Normal file
|
@ -0,0 +1,9 @@
|
|||
always fails
|
||||
|
||||
Fails with errors:
|
||||
ERROR: sha1sum of /dev/md/vol0 has changed
|
||||
ERROR: /dev/md/vol0 has unexpected state on /dev/loop10
|
||||
ERROR: unexpected number of online disks on /dev/loop10
|
||||
ERROR: /dev/md/vol0 has unexpected state on /dev/loop8
|
||||
ERROR: unexpected number of online disks on /dev/loop8
|
||||
ERROR: sha1sum of /dev/md/vol0 has changed
|
5
tests/14imsm-r1_2d-grow-r1_3d.broken
Normal file
5
tests/14imsm-r1_2d-grow-r1_3d.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
always fails
|
||||
|
||||
Fails with error:
|
||||
|
||||
mdadm/tests/func.sh: line 325: dvsize/chunk: division by 0 (error token is "chunk")
|
6
tests/14imsm-r1_2d-takeover-r0_2d.broken
Normal file
6
tests/14imsm-r1_2d-takeover-r0_2d.broken
Normal file
|
@ -0,0 +1,6 @@
|
|||
always fails
|
||||
|
||||
Fails with error:
|
||||
|
||||
tests/func.sh: line 325: dvsize/chunk: division by 0 (error token
|
||||
is "chunk")
|
5
tests/18imsm-r10_4d-takeover-r0_2d.broken
Normal file
5
tests/18imsm-r10_4d-takeover-r0_2d.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
fails rarely
|
||||
|
||||
Fails about 1 run in 100 with message:
|
||||
|
||||
ERROR: size is wrong for /dev/md/vol0: 2 * 5120 (chunk=128) = 20480, not 0
|
6
tests/18imsm-r1_2d-takeover-r0_1d.broken
Normal file
6
tests/18imsm-r1_2d-takeover-r0_1d.broken
Normal file
|
@ -0,0 +1,6 @@
|
|||
always fails
|
||||
|
||||
Fails with error:
|
||||
|
||||
tests/func.sh: line 325: dvsize/chunk: division by 0 (error token
|
||||
is "chunk")
|
5
tests/19raid6auto-repair.broken
Normal file
5
tests/19raid6auto-repair.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
always fails
|
||||
|
||||
Fails with:
|
||||
|
||||
"should detect errors"
|
5
tests/19raid6repair.broken
Normal file
5
tests/19raid6repair.broken
Normal file
|
@ -0,0 +1,5 @@
|
|||
always fails
|
||||
|
||||
Fails with:
|
||||
|
||||
"should detect errors"
|
Loading…
Add table
Add a link
Reference in a new issue