summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeena Fallah <seenafallah@gmail.com>2024-10-28 02:06:53 +0100
committerSeena Fallah <seenafallah@gmail.com>2025-01-15 20:57:49 +0100
commitf54176f28c600102f928d970973466f5b9c17ce4 (patch)
treec2403485b681d774071e9de142ea4c12651d71b7
parentMerge pull request #60847 from cbodley/wip-rgw-boto-headbucket-stats (diff)
downloadceph-f54176f28c600102f928d970973466f5b9c17ce4.tar.xz
ceph-f54176f28c600102f928d970973466f5b9c17ce4.zip
rgw: set dest bucket id in bucket sync checkpoint
bucket_source_sync_checkpoint() requires bucket id to lookup for full-sync object and the dest pipe doesn't have it. by replcaning the bucket key in the pipe with the bucket info we will ensure the bucket id is set. Fixes: https://tracker.ceph.com/issues/69548 Signed-off-by: Seena Fallah <seenafallah@gmail.com>
-rw-r--r--src/rgw/driver/rados/rgw_rest_log.cc2
-rw-r--r--src/rgw/radosgw-admin/sync_checkpoint.cc1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/rgw/driver/rados/rgw_rest_log.cc b/src/rgw/driver/rados/rgw_rest_log.cc
index 9315dfc0afd..72216a471b3 100644
--- a/src/rgw/driver/rados/rgw_rest_log.cc
+++ b/src/rgw/driver/rados/rgw_rest_log.cc
@@ -1061,7 +1061,7 @@ void RGWOp_BILog_Status::execute(optional_yield y)
if (!pipe.dest.bucket) {
/* Uh oh, something went wrong */
- ldpp_dout(this, 20) << "ERROR: RGWOp_BILog_Status::execute(optional_yield y): BUG: pipe.dest.bucket was not initialized" << pipe << dendl;
+ ldpp_dout(this, 0) << "ERROR: RGWOp_BILog_Status::execute(optional_yield y): BUG: pipe.dest.bucket was not initialized" << pipe << dendl;
op_ret = -EIO;
return;
}
diff --git a/src/rgw/radosgw-admin/sync_checkpoint.cc b/src/rgw/radosgw-admin/sync_checkpoint.cc
index 0303ed6c747..97da99bdc27 100644
--- a/src/rgw/radosgw-admin/sync_checkpoint.cc
+++ b/src/rgw/radosgw-admin/sync_checkpoint.cc
@@ -228,6 +228,7 @@ int rgw_bucket_sync_checkpoint(const DoutPrefixProvider* dpp,
}
auto& entry = sources.emplace_back();
entry.pipe = pipe;
+ entry.pipe.dest.bucket = info.bucket; // so it contains the bucket key (+bucket id)
// fetch remote markers
boost::asio::spawn(ioctx, [&] (boost::asio::yield_context yield) {