diff options
-rw-r--r-- | test/lib/aux.sh | 51 | ||||
-rw-r--r-- | test/shell/pvmove-abort-all.sh | 4 | ||||
-rw-r--r-- | test/shell/pvmove-abort.sh | 3 |
3 files changed, 27 insertions, 31 deletions
diff --git a/test/lib/aux.sh b/test/lib/aux.sh index b2660b65c..d33a13882 100644 --- a/test/lib/aux.sh +++ b/test/lib/aux.sh @@ -1994,37 +1994,36 @@ check_lvmpolld_init_rq_count() { wait_pvmove_lv_ready() { # given sleep .1 this is about 20 secs of waiting - local retries=${2-100} + local lvid=() + local all - if [ -e LOCAL_LVMPOLLD ]; then - local lvid="" - while : ; do - test "$retries" -le 0 && die "Waiting for lvmpolld timed out" - test -n "$lvid" || { - # wait till wanted LV really appears - lvid=$(dmsetup info --noheadings -c -o uuid "$1" 2>/dev/null || true) - lvid=${lvid##LVM-} - } - test -z "$lvid" || { + for i in {100..0}; do + if [ -e LOCAL_LVMPOLLD ]; then + if test "${#lvid[@]}" -eq "$#" ; then lvmpolld_dump > lvmpolld_dump.txt - check_lvmpolld_init_rq_count 1 "$lvid" lvid && break; - } - sleep .1 - retries=$((retries-1)) - done - else - while : ; do - test "$retries" -le 0 && die "Waiting for pvmove LV to get activated has timed out" - dmsetup info -c -o tables_loaded "$1" >out 2>/dev/null|| true; - not grep Live out >/dev/null || break - sleep .1 - retries=$((retries-1)) - done - fi + all=1 + for l in "${lvid[@]}" ; do + check_lvmpolld_init_rq_count 1 "${l##LVM-}" lvid || all=0 + done + test "$all" = 1 && return + else + # wait till wanted LV really appears + lvid=( $(dmsetup info --noheadings -c -o uuid "$@" 2>/dev/null) ) || true + fi + else + dmsetup info -c --noheadings -o tables_loaded "$@" >out 2>/dev/null || true + test "$(grep -c Live out)" = "$#" && return + fi + sleep .1 + done + + test -e LOCAL_LVMPOLLD && die "Waiting for lvmpolld timed out" + die "Waiting for pvmove LV to get activated has timed out" + # TODO: remove, uneedeed ?? # Adding settle here, to avoid remove, before processing of 'add' is finished # (masking systemd-udevd issue) - udevadm settle --timeout=2 || true + #udev_wait 2 || true } # Holds device open with sleep which automatically expires after given timeout diff --git a/test/shell/pvmove-abort-all.sh b/test/shell/pvmove-abort-all.sh index 893223f12..c18467c87 100644 --- a/test/shell/pvmove-abort-all.sh +++ b/test/shell/pvmove-abort-all.sh @@ -53,11 +53,9 @@ cmd3=(pvmove -i1 $backgroundarg $mode -n $vg1/$lv1 "$dev4" "$dev6") if test -z "$backgroundarg" ; then "${cmd1[@]}" & - aux wait_pvmove_lv_ready "$vg-pvmove0" "${cmd2[@]}" & - aux wait_pvmove_lv_ready "$vg-pvmove1" "${cmd3[@]}" & - aux wait_pvmove_lv_ready "$vg1-pvmove0" + aux wait_pvmove_lv_ready "$vg-pvmove0" "$vg-pvmove1" "$vg1-pvmove0" lvs -a $vg $vg1 else LVM_TEST_TAG="kill_me_$PREFIX" "${cmd1[@]}" diff --git a/test/shell/pvmove-abort.sh b/test/shell/pvmove-abort.sh index f5744d430..2917318f4 100644 --- a/test/shell/pvmove-abort.sh +++ b/test/shell/pvmove-abort.sh @@ -42,9 +42,8 @@ cmd2=(pvmove -i1 $backgroundarg $mode "$dev2" "$dev3") if test -z "$backgroundarg" ; then "${cmd1[@]}" & - aux wait_pvmove_lv_ready "$vg-pvmove0" "${cmd2[@]}" & - aux wait_pvmove_lv_ready "$vg-pvmove1" + aux wait_pvmove_lv_ready "$vg-pvmove0" "$vg-pvmove1" else LVM_TEST_TAG="kill_me_$PREFIX" "${cmd1[@]}" LVM_TEST_TAG="kill_me_$PREFIX" "${cmd2[@]}" |