summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-03-26 00:35:28 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-03-26 00:35:28 +0100
commit5feb99dda68dd492929fff0d7b15d3ef0ab86347 (patch)
treed37968e8b475fe5062017550a500ce83cfdc2230
parent0558b223b87b922faa709e7a7e0e6aaa4b7f0c42 (diff)
downloadlvm2-5feb99dda68dd492929fff0d7b15d3ef0ab86347.tar.gz
tests: add workaround for older mdadm
Some older instancies of 'mdadm' opened legs in RW and closed and opened again and expected exlusive access. But here udev rule can be fired - so on these versions slow down whole mdadm runtime by using strace, to give system a bit more time to finish udev rule.
-rw-r--r--test/shell/lvm-on-md.sh16
1 files changed, 14 insertions, 2 deletions
diff --git a/test/shell/lvm-on-md.sh b/test/shell/lvm-on-md.sh
index 9187d44f5..7c14e6748 100644
--- a/test/shell/lvm-on-md.sh
+++ b/test/shell/lvm-on-md.sh
@@ -27,6 +27,18 @@ _clear_online_files() {
. lib/inittest
+which mdadm || skip
+
+STRACE=
+[ "$DM_DEV_DIR" = "/dev" ] && mdadm -V 2>&1 | grep " v3.2" && {
+ # use this 'trick' to slow down mdadm which otherwise
+ # is racing with udev rule since mdadm internally
+ # opens and closes raid leg devices in RW mode and then
+ # tries to get exlusive access to the leg device during
+ # insertion to kernel and fails during assembly
+ # There could be more affted version of mdadm.
+ STRACE="strace -f -o /dev/null"
+}
# This stops lvm from taking advantage of hints which
# will have already excluded md components.
@@ -109,7 +121,7 @@ test ! -f "$RUNDIR/lvm/vgs_online/$vg"
# should not show an active lv
not dmsetup info $vg-$lv1
-mdadm --assemble "$mddev" "$dev1" "$dev2"
+$STRACE mdadm --assemble "$mddev" "$dev1" "$dev2"
aux udev_wait
not pvs "$dev1"
@@ -264,7 +276,7 @@ test ! -f "$RUNDIR/lvm/vgs_online/$vg"
not dmsetup info $vg-$lv1
# start the md dev
-mdadm --assemble "$mddev" "$dev1" "$dev2"
+$STRACE mdadm --assemble "$mddev" "$dev1" "$dev2"
aux udev_wait
not pvs "$dev1"