From: Shilpa Jagannath Date: Wed, 22 Nov 2023 22:21:29 +0000 (-0500) Subject: rgw/multisite: - don't overwrite bucket attrs while storing bucket instance info. X-Git-Tag: testing/wip-vshankar-testing-20250407.170244-debug~8^2~19 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=53c679a38380096bab76575dd3990853374cc341;p=ceph-ci.git rgw/multisite: - don't overwrite bucket attrs while storing bucket instance info. - get rid of the helper function that adds the 'deleted' log layout. Signed-off-by: Shilpa Jagannath --- diff --git a/src/rgw/driver/rados/rgw_rados.cc b/src/rgw/driver/rados/rgw_rados.cc index 287212fc66c..07192a7aa44 100644 --- a/src/rgw/driver/rados/rgw_rados.cc +++ b/src/rgw/driver/rados/rgw_rados.cc @@ -5550,7 +5550,7 @@ int RGWRados::check_bucket_empty(const DoutPrefixProvider *dpp, RGWBucketInfo& b * bucket: the name of the bucket to delete * Returns 0 on success, -ERR# otherwise. */ -int RGWRados::delete_bucket(RGWBucketInfo& bucket_info, RGWObjVersionTracker& objv_tracker, optional_yield y, const DoutPrefixProvider *dpp, bool check_empty) +int RGWRados::delete_bucket(RGWBucketInfo& bucket_info, std::map& attrs, RGWObjVersionTracker& objv_tracker, optional_yield y, const DoutPrefixProvider *dpp, bool check_empty) { const rgw_bucket& bucket = bucket_info.bucket; librados::IoCtx index_pool; @@ -5614,7 +5614,6 @@ int RGWRados::delete_bucket(RGWBucketInfo& bucket_info, RGWObjVersionTracker& ob cct->_conf->rgw_bucket_index_max_aio)(); } else { bucket_info.flags |= BUCKET_DELETED; - map attrs; r = ctl.bucket->store_bucket_instance_info(bucket, bucket_info, y, dpp, RGWBucketCtl::BucketInstance::PutParams() .set_exclusive(false) diff --git a/src/rgw/driver/rados/rgw_rados.h b/src/rgw/driver/rados/rgw_rados.h index 96a4a93634a..64bbfe8beae 100644 --- a/src/rgw/driver/rados/rgw_rados.h +++ b/src/rgw/driver/rados/rgw_rados.h @@ -1268,7 +1268,7 @@ int restore_obj_from_cloud(RGWLCCloudTierCtx& tier_ctx, * bucket: the name of the bucket to delete * Returns 0 on success, -ERR# otherwise. */ - int delete_bucket(RGWBucketInfo& bucket_info, RGWObjVersionTracker& objv_tracker, optional_yield y, const DoutPrefixProvider *dpp, bool check_empty = true); + int delete_bucket(RGWBucketInfo& bucket_info, std::map& attrs, RGWObjVersionTracker& objv_tracker, optional_yield y, const DoutPrefixProvider *dpp, bool check_empty = true); void wakeup_meta_sync_shards(std::set& shard_ids); diff --git a/src/rgw/driver/rados/rgw_sal_rados.cc b/src/rgw/driver/rados/rgw_sal_rados.cc index 3293fafb629..a6e7d6eb3cb 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.cc +++ b/src/rgw/driver/rados/rgw_sal_rados.cc @@ -446,8 +446,8 @@ int RadosBucket::remove(const DoutPrefixProvider* dpp, RGWObjVersionTracker ot; // if we deleted children above we will force delete, as any that - // remain is detritus from a prior bug - ret = store->getRados()->delete_bucket(info, ot, y, dpp, !delete_children); + // remain is detrius from a prior bug + ret = store->getRados()->delete_bucket(info, get_attrs(), ot, y, dpp, !delete_children); if (ret < 0) { ldpp_dout(dpp, -1) << "ERROR: could not remove bucket " << info.bucket.name << dendl; diff --git a/src/rgw/rgw_bucket_layout.h b/src/rgw/rgw_bucket_layout.h index 77cbef94602..647ec5cd2e9 100644 --- a/src/rgw/rgw_bucket_layout.h +++ b/src/rgw/rgw_bucket_layout.h @@ -216,12 +216,6 @@ inline auto matches_gen(uint64_t gen) return [gen] (const bucket_log_layout_generation& l) { return l.gen == gen; }; } -inline bucket_log_layout_generation log_layout_from_deleted_index( - uint64_t gen, const bucket_index_layout_generation& index) -{ - return {gen, {BucketLogType::Deleted, {index.gen, index.layout.normal}}}; -} - inline bucket_index_layout_generation log_to_index_layout(const bucket_log_layout_generation& log_layout) { ceph_assert(log_layout.layout.type == BucketLogType::InIndex);