From 6c91f79e7d9e703fb03cbac033b402502e69c6b0 Mon Sep 17 00:00:00 2001 From: Shilpa Jagannath Date: Mon, 5 Jun 2023 14:04:22 -0400 Subject: [PATCH] rgw/multisite: create separate control objects for each source zone Signed-off-by: Shilpa Jagannath --- src/rgw/driver/rados/rgw_data_sync.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rgw/driver/rados/rgw_data_sync.cc b/src/rgw/driver/rados/rgw_data_sync.cc index 135b2d958b282..8c6fee7c95411 100644 --- a/src/rgw/driver/rados/rgw_data_sync.cc +++ b/src/rgw/driver/rados/rgw_data_sync.cc @@ -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); -- 2.39.5