From c0af4a5f4f290da657237c73f66590cf6a4295df Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Thu, 11 Feb 2021 22:48:22 +0900 Subject: [PATCH] src/test: add snap to send TierEvictOp to snapshotted manifest object Signed-off-by: Myoungwon Oh --- src/test/osd/RadosModel.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/test/osd/RadosModel.h b/src/test/osd/RadosModel.h index 1bec8d28085..69430b3fcba 100644 --- a/src/test/osd/RadosModel.h +++ b/src/test/osd/RadosModel.h @@ -2844,6 +2844,7 @@ public: librados::ObjectReadOperation op; string oid; std::shared_ptr in_use; + int snap; TierEvictOp(int n, RadosTestContext *context, @@ -2851,13 +2852,27 @@ public: TestOpStat *stat) : TestOp(n, context, stat), completion(NULL), - oid(oid) + oid(oid), + snap(-1) {} void _begin() override { context->state_lock.lock(); + if (0 && !(rand() % 4) && !context->snaps.empty()) { + snap = rand_choose(context->snaps)->first; + in_use = context->snaps_in_use.lookup_or_create(snap, snap); + } else { + snap = -1; + } + + cout << num << ": tier_evict oid " << oid << " snap " << snap << std::endl; + + if (snap >= 0) { + context->io_ctx.snap_set_read(context->snaps[snap]); + } + pair *cb_arg = new pair(this, new TestOp::CallbackInfo(0)); @@ -2870,6 +2885,10 @@ public: &op, librados::OPERATION_IGNORE_CACHE, NULL); ceph_assert(!r); + + if (snap >= 0) { + context->io_ctx.snap_set_read(0); + } } void _finish(CallbackInfo *info) override -- 2.39.5