From 5e067b9dcf9bcccd9a1c0153d94818dccf6a0f71 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 27 Apr 2018 17:32:38 -0500 Subject: [PATCH] ceph_test_rados_api_aio: fix race with full pool and osdmap 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 --- src/test/librados/aio.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/librados/aio.cc b/src/test/librados/aio.cc index d30438074b0b..861f34ebe4ff 100644 --- a/src/test/librados/aio.cc +++ b/src/test/librados/aio.cc @@ -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; -- 2.47.3