diff --git a/test/shell/lock-blocking.sh b/test/shell/lock-blocking.sh index 9defaf2c7..e1ced309e 100644 --- a/test/shell/lock-blocking.sh +++ b/test/shell/lock-blocking.sh @@ -26,7 +26,7 @@ vgcreate $SHARED $vg "$dev1" "$dev2" # if wait_for_locks set, vgremove should wait for global lock # flock process should have exited by the time first vgremove completes -flock -w 5 "$TESTDIR/var/lock/lvm/P_global" sleep 10 & +flock -w 3 "$TESTDIR/var/lock/lvm/P_global" sleep 4 & while ! test -f "$TESTDIR/var/lock/lvm/P_global" ; do sleep .1 ; done vgremove --config 'global { wait_for_locks = 1 }' $vg @@ -38,12 +38,16 @@ test ! -f "$TESTDIR/var/lock/lvm/P_global" # we must wait for flock process at the end - vgremove won't wait vgcreate $SHARED $vg "$dev1" "$dev2" flock -w 5 "$TESTDIR/var/lock/lvm/P_global" sleep 10 & +flock_pid=$! while ! test -f "$TESTDIR/var/lock/lvm/P_global" ; do sleep .1 ; done -flock_pid=$(jobs -p) + not vgremove --config 'global { wait_for_locks = 0 }' $vg test -f "$TESTDIR/var/lock/lvm/P_global" # still running +# First kill 'sleep' process forked from flock +# Not using 'flock -F' since this flag is newer +kill $(ps -o pid --no-headers --ppid "$flock_pid") kill "$flock_pid" vgremove -ff $vg