From 87278548a5a476692511b76b661278501bf72429 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 6 May 2019 15:16:03 -0400 Subject: [PATCH] qa/workunits/rbd: wait for rbd-nbd unmap to complete The "unmap" request is asynchronous, so wait for a short amount of time for the "rbd-nbd" daemon process to exit. Fixes: http://tracker.ceph.com/issues/39598 Signed-off-by: Jason Dillaman --- qa/workunits/rbd/rbd-nbd.sh | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/qa/workunits/rbd/rbd-nbd.sh b/qa/workunits/rbd/rbd-nbd.sh index 30a20438ff6..2ed1618c1a7 100755 --- a/qa/workunits/rbd/rbd-nbd.sh +++ b/qa/workunits/rbd/rbd-nbd.sh @@ -101,6 +101,19 @@ function get_pid() ps -p ${PID} -o cmd | grep rbd-nbd } +unmap_device() +{ + local unmap_dev=$1 + local list_dev=$2 + _sudo rbd-nbd unmap ${unmap_dev} + + for s in 0.5 1 2 4 8 16 32; do + sleep ${s} + rbd-nbd list-mapped | expect_false grep "${list_dev} $" && return 0 + done + return 1 +} + # # main # @@ -128,8 +141,7 @@ get_pid # map test specifying the device expect_false _sudo rbd-nbd --device ${DEV} map ${POOL}/${IMAGE} dev1=${DEV} -_sudo rbd-nbd unmap ${DEV} -rbd-nbd list-mapped | expect_false grep "${DEV} $" +unmap_device ${DEV} ${DEV} DEV= # XXX: race possible when the device is reused by other process DEV=`_sudo rbd-nbd --device ${dev1} map ${POOL}/${IMAGE}` @@ -208,8 +220,7 @@ ps -p ${PID} -o cmd | expect_false grep rbd-nbd rbd snap create ${POOL}/${IMAGE}@snap DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}@snap` get_pid -_sudo rbd-nbd unmap "${IMAGE}@snap" -rbd-nbd list-mapped | expect_false grep "${DEV} $" +unmap_device "${IMAGE}@snap" ${DEV} DEV= ps -p ${PID} -o cmd | expect_false grep rbd-nbd @@ -217,8 +228,7 @@ ps -p ${PID} -o cmd | expect_false grep rbd-nbd rbd snap create ${POOL}/${NS}/${IMAGE}@snap DEV=`_sudo rbd-nbd map ${POOL}/${NS}/${IMAGE}@snap` get_pid ${NS} -_sudo rbd-nbd unmap "${POOL}/${NS}/${IMAGE}@snap" -rbd-nbd list-mapped | expect_false grep "${DEV} $" +unmap_device "${POOL}/${NS}/${IMAGE}@snap" ${DEV} DEV= ps -p ${PID} -o cmd | expect_false grep rbd-nbd -- 2.39.5