]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/dedup: skip delete-markers
authorGabriel BenHanokh <gbenhano@redhat.com>
Tue, 11 Nov 2025 10:23:03 +0000 (12:23 +0200)
committerThomas Serlin <tserlin@redhat.com>
Tue, 11 Nov 2025 18:23:19 +0000 (13:23 -0500)
Resolves: rhbz#2413062

Signed-off-by: Gabriel BenHanokh <gbenhano@redhat.com>
src/rgw/rgw_dedup.cc

index ebce596042402f5d4c1962994a90b2c8d167436b..fd71a09a0ee7d5b6e66acc5fbf6c8143f1b87d15 100644 (file)
@@ -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!