]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/workunits/rbd: wait for rbd-nbd unmap to complete
authorJason Dillaman <dillaman@redhat.com>
Mon, 6 May 2019 19:16:03 +0000 (15:16 -0400)
committerJason Dillaman <dillaman@redhat.com>
Mon, 6 May 2019 19:16:03 +0000 (15:16 -0400)
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 <dillaman@redhat.com>
qa/workunits/rbd/rbd-nbd.sh

index 30a20438ff6482ffc1e5b304e055961c4d5fa064..2ed1618c1a778f3430963726aaa06a1e92110c96 100755 (executable)
@@ -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