[lvm-devel] master - tests: use delayzero_dev

Zdenek Kabelac zkabelac at sourceware.org
Fri Sep 4 16:13:51 UTC 2020


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=10fc3610c46be494c6d15c845b2b85a3ca955d79
Commit:        10fc3610c46be494c6d15c845b2b85a3ca955d79
Parent:        76b1f43e812189ea325eed979786a07b4cf7d684
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Fri Sep 4 18:05:01 2020 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Sep 4 18:11:42 2020 +0200

tests: use delayzero_dev

Speed-up a bit the first synchronization with just 50ms write delay,
but later set also delay on read to slowdown lvextend.

FIXME: there are still things to look at:

0 229376 raid raid1 2 AA 229376/229376 idle 0 0
0 229376 raid raid1 2 AA 0/229376 frozen 0 0 -
0 262144 raid raid1 2 AA 229376/262144 repair 0 0 -
0 262144 raid raid1 2 AA 229376/262144 repair 0 0 -
0 262144 raid raid1 2 AA 245888/262144 repair 0 0 -
---
 test/shell/lvextend-raid.sh | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/test/shell/lvextend-raid.sh b/test/shell/lvextend-raid.sh
index e38634ba7..abd4cc508 100644
--- a/test/shell/lvextend-raid.sh
+++ b/test/shell/lvextend-raid.sh
@@ -20,7 +20,7 @@ v1_15_0=0
 aux have_raid 1 15 0 && v1_15_0=1
 
 # Use smallest regionsize to save VG space
-regionsize=`getconf PAGESIZE` # in bytes
+regionsize=$(getconf PAGESIZE) # in bytes
 let pageregions=regionsize*8  # number of regions per MD bitmap page
 
 # in KiB
@@ -34,7 +34,14 @@ aux prepare_pvs 2 $(($lvsz + 3 * $lvext))
 get_devs
 vgcreate -s 4k $vg ${DEVICES[@]}
 
-aux delay_dev "$dev1"  0 150
+# Keep $dev1 & $dev2 always open via small active LVs.
+# This trick avoids race on system with scanning udev service
+# when device is 'in-use' and we cleared _rimage & _rmeta.
+lvcreate -l1 $vg "$dev1"
+lvcreate -l1 $vg "$dev2"
+
+sector=$(( $(get first_extent_sector "$dev2") + 2048 ))
+aux delayzero_dev "$dev2"  0 50 "${sector}:"
 
 # Create raid1 LV consuming 1 MD bitmap page
 lvcreate --yes --type raid1 --regionsize ${regionsize}K -L$(($lvsz-$lvext))M -n $lv1 $vg
@@ -44,10 +51,17 @@ aux wait_for_sync $vg $lv1
 check lv_field $vg/$lv1 sync_percent "100.00"
 check lv_field $vg/$lv1 region_size "4.00k"
 
+# to slow down extension - slowdown readings
+aux delayzero_dev "$dev1"  50 0 "${sector}:"
+
+dmsetup table
+dmsetup info -c
+dmsetup status
 # Extend so that full MD bitmap page is consumed
-lvextend -y -L+${lvext}M $vg/$lv1
+lvextend -vvvv -y -L+${lvext}M $vg/$lv1
 not check lv_field $vg/$lv1 sync_percent "100.00"
 check lv_field $vg/$lv1 size "$(($lvsz)).00m" $vg/$lv1
+lvs -a $vg
 aux wait_for_sync $vg $lv1
 check lv_field $vg/$lv1 sync_percent "100.00"
 
@@ -63,4 +77,7 @@ aux wait_for_sync $vg $lv1
 check lv_field $vg/$lv1 sync_percent "100.00"
 check lv_field $vg/$lv1 size "$(($lvsz+$lvext)).00m" $vg/$lv1
 
+aux enable_dev "$dev1"
+aux enable_dev "$dev2"
+
 vgremove -ff $vg




More information about the lvm-devel mailing list