]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunits/rbd: fix looping in remove_image_retry()
authorIlya Dryomov <idryomov@gmail.com>
Sun, 16 Mar 2025 16:23:22 +0000 (17:23 +0100)
committerPrasanna Kumar Kalever <prasanna.kalever@redhat.com>
Thu, 24 Apr 2025 15:56:35 +0000 (21:26 +0530)
remove_image_retry() is to be called on images that may still have
a watcher (i.e. considered to be open), in which case either of "rbd
snap purge" and "rbd rm" commands can fail.

This unbreaks "TEST: delete images during bootstrap".

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
qa/workunits/rbd/rbd_mirror_helpers.sh

index 5c0c29316c82df4a972666f0c349f654030f1646..db94ca277e26737a7f4d029017f975050ea69cc0 100755 (executable)
@@ -1434,9 +1434,10 @@ remove_image()
     local cluster=$1
     local pool=$2
     local image=$3
+    local runner=${4:-"run_cmd"}
 
-    run_cmd "rbd --cluster=${cluster} snap purge ${pool}/${image}"
-    run_cmd "rbd --cluster=${cluster} rm ${pool}/${image}"
+    "$runner" "rbd --cluster=${cluster} snap purge ${pool}/${image}"
+    "$runner" "rbd --cluster=${cluster} rm ${pool}/${image}"
 }
 
 image_remove()
@@ -1448,7 +1449,6 @@ image_remove()
     run_cmd "rbd --cluster=${cluster} rm ${image_spec}"
 }
 
-#TODO why does this need to retry - maybe waiting for purge to complete?
 remove_image_retry()
 {
     local cluster=$1
@@ -1457,7 +1457,7 @@ remove_image_retry()
 
     for s in 0 1 2 4 8 16 32; do
         sleep ${s}
-        remove_image ${cluster} ${pool} ${image} && return 0
+        remove_image ${cluster} ${pool} ${image} "try_cmd" && return 0
     done
     return 1
 }