]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: Add create_pool() which sleeps 1 second like python variant
authorDavid Zafman <dzafman@redhat.com>
Mon, 31 Jul 2017 23:17:16 +0000 (16:17 -0700)
committerDavid Zafman <dzafman@redhat.com>
Fri, 4 Aug 2017 13:38:09 +0000 (06:38 -0700)
wait_for_clean() can miss the new pool if it races with pool create.

Fixes: http://tracker.ceph.com/issues/20465
Signed-off-by: David Zafman <dzafman@redhat.com>
qa/standalone/ceph-helpers.sh
qa/standalone/erasure-code/test-erasure-code.sh
qa/standalone/erasure-code/test-erasure-eio.sh
qa/standalone/mon/misc.sh
qa/standalone/mon/mon-bind.sh
qa/standalone/mon/osd-erasure-code-profile.sh
qa/standalone/mon/test_pool_quota.sh
qa/standalone/osd/osd-dup.sh
qa/standalone/scrub/osd-scrub-repair.sh
qa/standalone/scrub/osd-scrub-snaps.sh

index de1d2fc5ae057c7bc178f102f9feebbe1ea05945..a252c76dc563df7dd515b5d20c0566aab4694cb5 100755 (executable)
@@ -476,10 +476,15 @@ function test_run_mon() {
 
 function create_rbd_pool() {
     ceph osd pool delete rbd rbd --yes-i-really-really-mean-it || return 1
-    ceph osd pool create rbd $PG_NUM || return 1
+    create_pool rbd $PG_NUM || return 1
     rbd pool init rbd
 }
 
+function create_pool() {
+    ceph osd pool create "$@"
+    sleep 1
+}
+
 #######################################################################
 
 function run_mgr() {
index 95126ead058586f76646fc9091fdcfbc14644d49..6dd5833ad04486db57759fcf2519f0932adeebe6 100755 (executable)
@@ -57,7 +57,7 @@ function create_erasure_coded_pool() {
 
     ceph osd erasure-code-profile set myprofile \
         crush-failure-domain=osd || return 1
-    ceph osd pool create $poolname 12 12 erasure myprofile \
+    create_pool $poolname 12 12 erasure myprofile \
         || return 1
     wait_for_clean || return 1
 }
@@ -164,7 +164,7 @@ function TEST_rados_put_get_lrc_advanced() {
         mapping=DD_ \
         crush-steps='[ [ "chooseleaf", "osd", 0 ] ]' \
         layers='[ [ "DDc", "" ] ]'  || return 1
-    ceph osd pool create $poolname 12 12 erasure $profile \
+    create_pool $poolname 12 12 erasure $profile \
         || return 1
 
     rados_put_get $dir $poolname || return 1
@@ -182,7 +182,7 @@ function TEST_rados_put_get_lrc_kml() {
         plugin=lrc \
         k=4 m=2 l=3 \
         crush-failure-domain=osd || return 1
-    ceph osd pool create $poolname 12 12 erasure $profile \
+    create_pool $poolname 12 12 erasure $profile \
         || return 1
 
     rados_put_get $dir $poolname || return 1
@@ -202,7 +202,7 @@ function TEST_rados_put_get_isa() {
     ceph osd erasure-code-profile set profile-isa \
         plugin=isa \
         crush-failure-domain=osd || return 1
-    ceph osd pool create $poolname 1 1 erasure profile-isa \
+    create_pool $poolname 1 1 erasure profile-isa \
         || return 1
 
     rados_put_get $dir $poolname || return 1
@@ -222,7 +222,7 @@ function TEST_rados_put_get_jerasure() {
         plugin=jerasure \
         k=4 m=2 \
         crush-failure-domain=osd || return 1
-    ceph osd pool create $poolname 12 12 erasure $profile \
+    create_pool $poolname 12 12 erasure $profile \
         || return 1
 
     rados_put_get $dir $poolname || return 1
@@ -242,7 +242,7 @@ function TEST_rados_put_get_shec() {
         plugin=shec \
         k=2 m=1 c=1 \
         crush-failure-domain=osd || return 1
-    ceph osd pool create $poolname 12 12 erasure $profile \
+    create_pool $poolname 12 12 erasure $profile \
         || return 1
 
     rados_put_get $dir $poolname || return 1
@@ -318,7 +318,7 @@ function TEST_chunk_mapping() {
         mapping='_DD' \
         crush-steps='[ [ "choose", "osd", 0 ] ]' || return 1
     ceph osd erasure-code-profile get remap-profile
-    ceph osd pool create remap-pool 12 12 erasure remap-profile \
+    create_pool remap-pool 12 12 erasure remap-profile \
         || return 1
 
     #
index 678088e94140879710559f8d0a673069aeea18d2..b26702d5423052f8394f9c0232f4b62d5db280c9 100755 (executable)
@@ -60,7 +60,7 @@ function create_erasure_coded_pool() {
         plugin=jerasure \
         k=2 m=1 \
         crush-failure-domain=osd || return 1
-    ceph osd pool create $poolname 1 1 erasure myprofile \
+    create_pool $poolname 1 1 erasure myprofile \
         || return 1
     wait_for_clean || return 1
 }
index 8abf6c5b125c469baeafd864d28dc2243db00852..e025e0708125ad92e3f0e0f5a8ebcc1bdf8742fd 100755 (executable)
@@ -40,7 +40,7 @@ function TEST_osd_pool_get_set() {
     setup $dir || return 1
     run_mon $dir a || return 1
     create_rbd_pool || return 1
-    ceph osd pool create $TEST_POOL 8
+    create_pool $TEST_POOL 8
 
     local flag
     for flag in nodelete nopgchange nosizechange write_fadvise_dontneed noscrub nodeep-scrub; do
@@ -82,7 +82,7 @@ function TEST_osd_pool_get_set() {
     ! ceph osd pool set $TEST_POOL min_size 0 || return 1
 
     local ecpool=erasepool
-    ceph osd pool create $ecpool 12 12 erasure default || return 1
+    create_pool $ecpool 12 12 erasure default || return 1
     #erasue pool size=k+m, min_size=k
     local size=$(ceph osd pool get $ecpool size|awk '{print $2}')
     local min_size=$(ceph osd pool get $ecpool min_size|awk '{print $2}')
index f87157c78abb4cecbe2def20ad1f99f0fb3167c2..a4d774d5566e12e3d5f09f6a2066478dd13c1388 100755 (executable)
@@ -136,7 +136,7 @@ function TEST_put_get() {
     run_osd $dir 1 || return 1
     run_osd $dir 2 || return 1
 
-    ceph osd pool create hello 8 || return 1
+    create_pool hello 8 || return 1
 
     echo "hello world" > $dir/hello
     rados --pool hello put foo $dir/hello || return 1
index 6bfc2587f8b8b4b9cc4fb6b9b0ef05de18df99f6..5480612997ce0829548de7a46b7c421fcfdfb4e3 100755 (executable)
@@ -98,7 +98,7 @@ function TEST_rm() {
         grep "WRONG does not exist" || return 1
 
     ceph osd erasure-code-profile set $profile || return 1
-    ceph osd pool create poolname 12 12 erasure $profile || return 1
+    create_pool poolname 12 12 erasure $profile || return 1
     ! ceph osd erasure-code-profile rm $profile > $dir/out 2>&1 || return 1
     grep "poolname.*using.*$profile" $dir/out || return 1
     ceph osd pool delete poolname poolname --yes-i-really-really-mean-it || return 1
index dcf89fd26e2d0cae95cf656d517ff0ce0421bc74..85941a895f631870062953393b457c10a1be8031 100755 (executable)
@@ -34,7 +34,7 @@ function TEST_pool_quota() {
     run_osd $dir 2 || return 1
 
     local poolname=testquoa
-    ceph osd  pool create $poolname 20
+    create_pool $poolname 20
     local objects=`ceph df detail | grep -w $poolname|awk '{print $3}'`
     local bytes=`ceph df detail | grep -w $poolname|awk '{print $4}'`
 
index a1bd1af5d621a3e804fcaf617eea38f427e0f431..759422edd3b4359684be0854605e764c176b8876 100755 (executable)
@@ -38,7 +38,7 @@ function TEST_filestore_to_bluestore() {
 
     sleep 5
 
-    ceph osd pool create foo 16
+    create_pool foo 16
 
     # write some objects
     rados bench -p foo 10 write -b 4096 --no-cleanup || return 1
index 28db9476b1b83e08437f53a09d6b67a98c5b5358..6f36149e10dffc75fad0ce05558e999862838f90 100755 (executable)
@@ -183,7 +183,7 @@ function create_ec_pool() {
 
     ceph osd erasure-code-profile set myprofile crush-failure-domain=osd $3 $4 $5 $6 $7 || return 1
 
-    ceph osd pool create "$poolname" 1 1 erasure myprofile || return 1
+    create_pool "$poolname" 1 1 erasure myprofile || return 1
 
     if [ "$allow_overwrites" = "true" ]; then
         ceph osd pool set "$poolname" allow_ec_overwrites true || return 1
@@ -487,8 +487,8 @@ function TEST_corrupt_scrub_replicated() {
     create_rbd_pool || return 1
     wait_for_clean || return 1
 
-    ceph osd pool create foo 1 || return 1
-    ceph osd pool create $poolname 1 1 || return 1
+    create_pool foo 1 || return 1
+    create_pool $poolname 1 1 || return 1
     wait_for_clean || return 1
 
     for i in $(seq 1 $total_objs) ; do
@@ -1615,7 +1615,7 @@ function corrupt_scrub_erasure() {
        fi
     done
     create_rbd_pool || return 1
-    ceph osd pool create foo 1
+    create_pool foo 1
 
     create_ec_pool $poolname $allow_overwrites k=2 m=1 stripe_unit=2K --force || return 1
     wait_for_clean || return 1
@@ -2549,7 +2549,7 @@ function TEST_periodic_scrub_replicated() {
     create_rbd_pool || return 1
     wait_for_clean || return 1
 
-    ceph osd pool create $poolname 1 1 || return 1
+    create_pool $poolname 1 1 || return 1
     wait_for_clean || return 1
 
     local osd=0
index 020363683e94afb3f7af881ff7c4ff7989b2d6f2..2c647845709364eae8d3f961bc6d71c6a2465d96 100755 (executable)
@@ -46,7 +46,8 @@ function TEST_scrub_snaps() {
     wait_for_clean || return 1
 
     # Create a pool with a single pg
-    ceph osd pool create $poolname 1 1
+    create_pool $poolname 1 1
+    wait_for_clean || return 1
     poolid=$(ceph osd dump | grep "^pool.*[']test[']" | awk '{ print $2 }')
 
     dd if=/dev/urandom of=$TESTDATA bs=1032 count=1