From: Gabriel BenHanokh Date: Tue, 11 Nov 2025 10:23:03 +0000 (+0200) Subject: rgw/dedup: skip delete-markers X-Git-Tag: testing/wip-pdonnell-testing-20260323.122957-tentacle~374 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9f592bb0afe753840ed3eca4876ebe17d67e5170;p=ceph-ci.git rgw/dedup: skip delete-markers Resolves: rhbz#2413062 Signed-off-by: Gabriel BenHanokh --- diff --git a/src/rgw/rgw_dedup.cc b/src/rgw/rgw_dedup.cc index ebce5960424..fd71a09a0ee 100644 --- a/src/rgw/rgw_dedup.cc +++ b/src/rgw/rgw_dedup.cc @@ -1691,15 +1691,20 @@ namespace rgw::dedup { obj_count += result.dir.m.size(); for (auto& entry : result.dir.m) { const rgw_bucket_dir_entry& dirent = entry.second; + // make sure to advance marker in all cases! + marker = dirent.key; + if (unlikely((!dirent.exists && !dirent.is_delete_marker()) || !dirent.pending_map.empty())) { // TBD: should we bailout ??? ldpp_dout(dpp, 1) << __func__ << "::ERR: calling check_disk_state bucket=" << bucket->get_name() << " entry=" << dirent.key << dendl; - // make sure we're advancing marker - marker = dirent.key; continue; } - marker = dirent.key; + else if (unlikely(dirent.is_delete_marker())) { + ldpp_dout(dpp, 20) << __func__ << "::skip delete_marker::" << bucket->get_name() + << "/" << marker.name << "::instance=" << marker.instance << dendl; + continue; + } ret = ingress_bucket_idx_single_object(disk_arr, bucket, dirent, p_worker_stats); } // TBD: advance marker only once here!