]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
systest: fix race with pool delete after socket injection 46099/head
authorNitzanMordhai <nmordech@redhat.com>
Sun, 1 May 2022 05:33:20 +0000 (05:33 +0000)
committerNitzanMordhai <nmordech@redhat.com>
Sun, 1 May 2022 05:33:34 +0000 (05:33 +0000)
Adding another semaphore for the second test to create pools only after the
first test delete complete.

Fixes: https://tracker.ceph.com/issues/43887
Signed-off-by: Nitzan Mordechai <nmordec@redhat.com>
src/test/system/rados_delete_pools_parallel.cc

index 47d878c7cb3fe2b127e1bd65b6518892098a100f..dc42d649a8bbba7d1befdb54f53d5c0abfb93298 100644 (file)
@@ -68,12 +68,14 @@ int main(int argc, const char **argv)
   RETURN1_IF_NONZERO(CrossProcessSem::create(0, &pool_setup_sem));
   CrossProcessSem *delete_pool_sem = NULL;
   RETURN1_IF_NONZERO(CrossProcessSem::create(0, &delete_pool_sem));
+  CrossProcessSem *deleted_pool_sem = NULL;
+  RETURN1_IF_NONZERO(CrossProcessSem::create(0, &deleted_pool_sem));
 
   // first test: create a pool, then delete that pool
   {
     StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL,
                         pool, 50, ".obj");
-    StRadosDeletePool r2(argc, argv, pool_setup_sem, NULL, pool);
+    StRadosDeletePool r2(argc, argv, pool_setup_sem, deleted_pool_sem, pool);
     vector < SysTestRunnable* > vec;
     vec.push_back(&r1);
     vec.push_back(&r2);
@@ -89,7 +91,7 @@ int main(int argc, const char **argv)
   RETURN1_IF_NONZERO(pool_setup_sem->reinit(0));
   RETURN1_IF_NONZERO(delete_pool_sem->reinit(0));
   {
-    StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL,
+    StRadosCreatePool r1(argc, argv, deleted_pool_sem, pool_setup_sem, NULL,
                         pool, g_num_objects, ".obj");
     StRadosDeletePool r2(argc, argv, delete_pool_sem, NULL, pool);
     StRadosListObjects r3(argc, argv, pool, true, g_num_objects / 2,