From 8dde6a61921798aa188bd69406c8fa7afeb96b45 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 13 Nov 2014 22:33:10 -0800 Subject: [PATCH] ceph_test_rados_api_tier: fix cleanup of whiteouts Doing a normal DELETE on a whiteout returns ENOENT. Use the IGNORE_CACHE flag to make sure it removes the whiteout, too. Fixes: #10052 Signed-off-by: Sage Weil --- src/test/librados/TestCase.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test/librados/TestCase.cc b/src/test/librados/TestCase.cc index 42cf3a7b846cd..d52d4d9b0bd42 100644 --- a/src/test/librados/TestCase.cc +++ b/src/test/librados/TestCase.cc @@ -327,7 +327,14 @@ void RadosTestPP::cleanup_namespace(librados::IoCtx ioctx, std::string ns) for (NObjectIterator it = ioctx.nobjects_begin(); it != ioctx.nobjects_end(); ++it) { ioctx.locator_set_key(it->get_locator()); - ASSERT_EQ(0, ioctx.remove(it->get_oid())); + ObjectWriteOperation op; + op.remove(); + librados::AioCompletion *completion = s_cluster.aio_create_completion(); + ASSERT_EQ(0, ioctx.aio_operate(it->get_oid(), completion, &op, + librados::OPERATION_IGNORE_CACHE)); + completion->wait_for_safe(); + ASSERT_EQ(0, completion->get_return_value()); + completion->release(); } } -- 2.39.5