]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_test_rados_api_aio: fix race with full pool and osdmap 21778/head
authorSage Weil <sage@redhat.com>
Fri, 27 Apr 2018 22:32:38 +0000 (17:32 -0500)
committerPrashant D <pdhange@redhat.com>
Wed, 2 May 2018 09:22:20 +0000 (05:22 -0400)
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>
(cherry picked from commit 5e067b9dcf9bcccd9a1c0153d94818dccf6a0f71)

src/test/librados/aio.cc

index d795b84683fc50d2a50b37e3a3f7bd50b2e3f26f..142622597386eaa510bfba80d79e430775268dfa 100644 (file)
@@ -235,6 +235,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;