]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/multisite: create separate control objects for each source zone
authorShilpa Jagannath <smanjara@redhat.com>
Mon, 5 Jun 2023 18:04:22 +0000 (14:04 -0400)
committerShilpa Jagannath <smanjara@redhat.com>
Wed, 14 Jun 2023 23:59:55 +0000 (19:59 -0400)
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
src/rgw/driver/rados/rgw_data_sync.cc

index 135b2d958b282a4ebef3a481ba0b5f2902db6bcc..8c6fee7c9541175b023f181cb3b5f75f8d2a13b1 100644 (file)
@@ -2517,7 +2517,7 @@ public:
         }
       }
 
-      notify_stack.get()->cancel();
+      notify_stack->cancel();
 
       return set_cr_done();
     }
@@ -3210,7 +3210,9 @@ int RGWRemoteDataLog::run_sync(const DoutPrefixProvider *dpp, int num_shards)
 {
   // construct and start bid manager for data sync fairness
   const auto& control_pool = sc.env->driver->svc()->zone->get_zone_params().control_pool;
-  auto control_obj = rgw_raw_obj{control_pool, data_sync_bids_oid};
+  char buf[data_sync_bids_oid.size() + sc.source_zone.id.size() + 16];
+  snprintf(buf, sizeof(buf), "%s.%s", data_sync_bids_oid.c_str(), sc.source_zone.id.c_str());
+  auto control_obj = rgw_raw_obj{control_pool, string(buf)};
 
   auto bid_manager = rgw::sync_fairness::create_rados_bid_manager(
       driver, control_obj, num_shards);