]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/multisite: error repo coroutines store raw_obj by value
authorCasey Bodley <cbodley@redhat.com>
Fri, 8 Dec 2023 20:26:21 +0000 (15:26 -0500)
committerCasey Bodley <cbodley@redhat.com>
Wed, 13 Dec 2023 20:31:35 +0000 (15:31 -0500)
RGWErrorRepoWriteCR/RGWErrorRepoRemoveCR need to copy their rgw_raw_obj
arguments to extend the lifetimes until send_request() is called

potential regression from https://github.com/ceph/ceph/pull/50359

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/driver/rados/rgw_sync_error_repo.cc

index aca671039ee1e8a3b60fe04b3849e50a8be00932..c180497bd73d69eacbdd842210773146eb3e07ce 100644 (file)
@@ -118,7 +118,7 @@ int remove(librados::ObjectWriteOperation& op,
 
 class RGWErrorRepoWriteCR : public RGWSimpleCoroutine {
   librados::Rados* rados;
-  const rgw_raw_obj& raw_obj;
+  rgw_raw_obj raw_obj;
   std::string key;
   ceph::real_time timestamp;
 
@@ -163,7 +163,7 @@ RGWCoroutine* write_cr(librados::Rados* rados,
 
 class RGWErrorRepoRemoveCR : public RGWSimpleCoroutine {
   librados::Rados* rados;
-  const rgw_raw_obj& raw_obj;
+  rgw_raw_obj raw_obj;
   std::string key;
   ceph::real_time timestamp;