]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/trim: restore update_mapping_update in RGWBucketInstanceMetadataHandler::remove
authorShilpa Jagannath <smanjara@redhat.com>
Wed, 18 Dec 2024 19:59:07 +0000 (14:59 -0500)
committerShilpa Jagannath <smanjara@redhat.com>
Fri, 4 Apr 2025 17:16:54 +0000 (13:16 -0400)
- fix testcase

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
PendingReleaseNotes
src/rgw/driver/rados/rgw_bucket.cc
src/rgw/driver/rados/rgw_cr_rados.h
src/test/rgw/rgw_multi/tests.py

index 64688e8630d9722aa7a9035dccc73944f759cc92..4edafcc49a4264232968031b3eed543fb42f542b 100644 (file)
 * RGW: deleted buckets are automatically cleaned up as part of trimming process.
   DeleteBucket will start returning 409 BucketNotEmpty errors until empty
   on all zones when sync policy is enabled.
-  `radosgw-admin bucket list-deleted` lists such buckets.
 
 * RADOS: A performance botteneck in the balancer mgr module has been fixed.
   Related Tracker: https://tracker.ceph.com/issues/68657
index 743187bb79e7b5dbb30ed9a2098a2a8892f022db..45545a104723464b0599e599708ab0a7ed64bfeb 100644 (file)
@@ -2887,8 +2887,7 @@ int RGWBucketInstanceMetadataHandler::put_prepare(
       ldpp_dout(dpp, 10) << "store log layout type: " <<  bci.info.layout.logs.back().layout.type << dendl;
       for (int i = 0; i < shards_num; ++i) {
         ldpp_dout(dpp, 10) << "adding to data_log shard_id: " << i << " of gen:" << index_log.gen << dendl;
-        int ret = svc_datalog->add_entry(dpp, bci.info, index_log, i,
-                                                    null_yield);
+        int ret = svc_datalog->add_entry(dpp, bci.info, index_log, i, y);
         if (ret < 0) {
           ldpp_dout(dpp, 1) << "WARNING: failed writing data log for bucket="
           << bci.info.bucket << ", shard_id=" << i << "of generation="
@@ -2975,7 +2974,21 @@ int RGWBucketInstanceMetadataHandler::put_post(
 int RGWBucketInstanceMetadataHandler::remove(std::string& entry, RGWObjVersionTracker& objv_tracker,
                                              optional_yield y, const DoutPrefixProvider *dpp)
 {
-  return 0; // skip bucket instance removal. each zone will handle it independently during trimming
+  RGWBucketCompleteInfo bci;
+  int ret = svc_bucket->read_bucket_instance_info(entry, &bci.info, nullptr,
+                                                  &bci.attrs, y, dpp);
+  if (ret == -ENOENT) {
+    return 0;
+  }
+  if (ret < 0) {
+    return ret;
+  }
+
+  // skip bucket instance removal. each zone will handle it independently during trimming
+
+  std::ignore = update_bucket_topic_mappings(dpp, &bci, /*current_bci=*/nullptr,
+                                             driver);
+  return 0;
 }
 
 int RGWBucketInstanceMetadataHandler::mutate(const std::string& entry, const ceph::real_time& mtime,
index c01132fa3555e00e6131fa5510092755433ef8c0..412de94dd933223c147ab7ae8ff7d43a58ff4885 100644 (file)
@@ -1775,7 +1775,6 @@ struct bucket_unordered_list_result {
   std::string prefix;
   int max_keys;
   bool is_truncated;
-  bool allow_unordered;
   std::list<bucket_list_entry> entries;
 
   bucket_unordered_list_result() : max_keys(0), is_truncated(false) {}
@@ -1785,7 +1784,6 @@ struct bucket_unordered_list_result {
     JSONDecoder::decode_json("Prefix", prefix, obj);
     JSONDecoder::decode_json("MaxKeys", max_keys, obj);
     JSONDecoder::decode_json("IsTruncated", is_truncated, obj);
-    JSONDecoder::decode_json("allow-unordered", allow_unordered, obj);
     JSONDecoder::decode_json("Entries", entries, obj);
   }
 };
index febdb3c3c608efb5b7b8f2d2c4a9211314bc1bfa..2f0e064d1411373f4576595483484ddb8f497a12 100644 (file)
@@ -1829,6 +1829,7 @@ def test_bucket_log_trim_after_delete_bucket_primary_reshard():
     bilog_autotrim(primary.zone, ['--rgw-sync-log-trim-max-buckets', '50'],)
     
     for zonegroup in realm.current_period.zonegroups:
+        zonegroup_conns = ZonegroupConns(zonegroup)
         for zone in zonegroup_conns.zones:
             assert check_bucket_instance_metadata(zone.zone, test_bucket.name)
 
@@ -1892,6 +1893,7 @@ def test_bucket_log_trim_after_delete_bucket_secondary_reshard():
     time.sleep(config.checkpoint_delay)
 
     for zonegroup in realm.current_period.zonegroups:
+        zonegroup_conns = ZonegroupConns(zonegroup)
         for zone in zonegroup_conns.zones:
             assert check_bucket_instance_metadata(zone.zone, test_bucket.name)