]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_test_rados_api_aio: fix race with full pool and osdmap 21709/head
authorSage Weil <sage@redhat.com>
Fri, 27 Apr 2018 22:32:38 +0000 (17:32 -0500)
committerSage Weil <sage@redhat.com>
Fri, 27 Apr 2018 22:37:33 +0000 (17:37 -0500)
We send ops until we get a EDQUOT, and then assert our next op to
a different object also gets EDQUOT.  However, if the second osd
doesn't have as new a map it may succeed.  Make sure the client has
the latest (mon) map, and thus the one marking the pool full, before
we send the second op.  That ensures the second OSD also has that
newer map and also returns EDQUOT.

Fixes: http://tracker.ceph.com/issues/23917
Signed-off-by: Sage Weil <sage@redhat.com>
src/test/librados/aio.cc

index d30438074b0b7bd654e85601a433dd5d7453858a..861f34ebe4ff641802c12eb1451f3c4109da6cf5 100644 (file)
@@ -236,6 +236,9 @@ TEST(LibRadosAio, PoolQuotaPP) {
   }
   ASSERT_LT(n, 1024);
 
+  // make sure we have latest map that marked the pool full
+  test_data.m_cluster.wait_for_latest_osdmap();
+
   // make sure we block without FULL_TRY
   {
     ObjectWriteOperation op;