From 5ffb09ef4c1f277b93a99f303b88feb1941cbc09 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 20 May 2020 13:49:27 -0500 Subject: [PATCH] ceph-dedup-tool: disable chunk scrub Signed-off-by: Sage Weil --- src/tools/ceph_dedup_tool.cc | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/tools/ceph_dedup_tool.cc b/src/tools/ceph_dedup_tool.cc index 48460cfb46640..44574b8043fcf 100644 --- a/src/tools/ceph_dedup_tool.cc +++ b/src/tools/ceph_dedup_tool.cc @@ -430,10 +430,17 @@ void ChunkScrub::chunk_scrub_common() } auto oid = i.oid; set refs; - set real_refs; - ret = cls_cas_chunk_read_refs(chunk_io_ctx, oid, &refs); - if (ret < 0) { - continue; + + chunk_obj_refcount real_refs; + { + bufferlist t; + ret = chunk_io_ctx.getxattr(oid, CHUNK_REFCOUNT_ATTR, t); + if (ret < 0) { + continue; + } +#warning fixme + //auto p = t.cbegin(); + //decode(refs, p); } for (auto pp : refs) { @@ -448,11 +455,15 @@ void ChunkScrub::chunk_scrub_common() ret = cls_cas_references_chunk(target_io_ctx, pp.oid.name, oid); if (ret != -ENOENT) { - real_refs.insert(pp); - } +#warning fixme + //real_refs.get(pp); + } } - if (refs.size() != real_refs.size()) { + /* + if (refs.size() != real_refs.refs.size()) { + cerr << "ref count mismatch on " << oid << std::endl; +#warning fixme ObjectWriteOperation op; cls_cas_chunk_set_refs(op, real_refs); ret = chunk_io_ctx.operate(oid, &op); @@ -461,6 +472,7 @@ void ChunkScrub::chunk_scrub_common() } fixed_objects++; } + */ examined_objects++; m_cond.wait_for(l, std::chrono::nanoseconds(COND_WAIT_INTERVAL)); if (cur_time + utime_t(report_period, 0) < ceph_clock_now()) { -- 2.39.5