summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-03-27 21:59:23 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-03-27 23:19:08 +0100
commitfeb7fef6c8d22d5773b6a5d1d9f2a5a3f52b5b3b (patch)
treed337cbcc3bbc7e22e4e3d9e3e5eccf71a51f2e42
parent1f7bd719d0d31a5dd5886dfcf783f6c2e80cb2e8 (diff)
downloadlvm2-feb7fef6c8d22d5773b6a5d1d9f2a5a3f52b5b3b.tar.gz
tests: fight with losetup creation error
Try losetup few times in loop if we can succeed.
-rw-r--r--test/shell/allow-mixed-block-sizes.sh17
1 files changed, 14 insertions, 3 deletions
diff --git a/test/shell/allow-mixed-block-sizes.sh b/test/shell/allow-mixed-block-sizes.sh
index a094338cb..171942e4b 100644
--- a/test/shell/allow-mixed-block-sizes.sh
+++ b/test/shell/allow-mixed-block-sizes.sh
@@ -19,9 +19,20 @@ which fallocate || skip
fallocate -l 2M loopa
fallocate -l 2M loopb
-sync
-LOOP1=$(losetup -f loopa --sector-size 4096 --show)
-LOOP2=$(losetup -f loopb --show)
+
+# Fight a weird occasional race in losetup usage:
+#
+# losetup: loopa: failed to set up loop device: Resource temporarily unavailable
+# loop0: detected capacity change from 0 to 4096
+# loop_set_block_size: loop0 () has still dirty pages (nrpages=2)
+for i in {1..5} ; do
+ LOOP1=$(losetup -f loopa --sector-size 4096 --show || true)
+ test -n "$LOOP1" && break
+done
+for i in {1..5} ; do
+ LOOP2=$(losetup -f loopb --show || true)
+ test -n "$LOOP2" && break
+done
# prepare devX mapping so it works for real & fake dev dir
d=1