]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd_mirror: avoid passing empty remote_mirror_uuid to group_replayer
authorPrasanna Kumar Kalever <prasanna.kalever@redhat.com>
Thu, 27 Mar 2025 07:25:33 +0000 (12:55 +0530)
committerPrasanna Kumar Kalever <prasanna.kalever@redhat.com>
Thu, 24 Apr 2025 15:56:37 +0000 (21:26 +0530)
group_replayer can fetch remote_mirror_uuid as remote_pool_meta.mirror_uuid

>>> gc = rbd.Group(ioctx, 'test_group')
>>> print(gc.group_snap_get_mirror_namespace('104b430672cf'))
{'state': 2, 'mirror_peer_uuids': [],
'primary_mirror_uuid': '6cd393ad-c21d-42e6-a404-0dabf596bfe7',
'primary_snap_id': '104b430672cf'}

Thanks to Ilya for highlighting the issue.

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
src/tools/rbd_mirror/GroupReplayer.cc
src/tools/rbd_mirror/group_replayer/Replayer.cc
src/tools/rbd_mirror/group_replayer/Replayer.h

index 9f6dbb27162896ff484cee5a07453b94ef7b5969..07ce2f4d793b8f9b8d7b6605ed6ce0ef01659bd8 100644 (file)
@@ -636,8 +636,8 @@ void GroupReplayer<I>::create_group_replayer() {
 
   m_replayer = group_replayer::Replayer<I>::create(
     m_threads, m_local_io_ctx, m_remote_group_peer.io_ctx, m_global_group_id,
-    m_local_mirror_uuid, m_remote_group_peer.uuid, m_pool_meta_cache,
-    m_local_group_id, m_remote_group_id, &m_local_group_ctx, &m_image_replayers);
+    m_local_mirror_uuid, m_pool_meta_cache, m_local_group_id, m_remote_group_id,
+    &m_local_group_ctx, &m_image_replayers);
 
   m_replayer->init(ctx);
 }
index b2157b758425ce694e1228a18ce5e5f897881ddf..6805a30db6bc076ff8049b29eee90915a943e1e5 100644 (file)
@@ -40,7 +40,6 @@ Replayer<I>::Replayer(
     librados::IoCtx &remote_io_ctx,
     const std::string &global_group_id,
     const std::string& local_mirror_uuid,
-    const std::string& remote_mirror_uuid,
     PoolMetaCache* pool_meta_cache,
     std::string local_group_id,
     std::string remote_group_id,
@@ -51,7 +50,6 @@ Replayer<I>::Replayer(
     m_remote_io_ctx(remote_io_ctx),
     m_global_group_id(global_group_id),
     m_local_mirror_uuid(local_mirror_uuid),
-    m_remote_mirror_uuid(remote_mirror_uuid),
     m_pool_meta_cache(pool_meta_cache),
     m_local_group_id(local_group_id),
     m_remote_group_id(remote_group_id),
@@ -247,8 +245,10 @@ void Replayer<I>::init(Context* on_finish) {
     return;
   }
 
+  m_remote_mirror_uuid = remote_pool_meta.mirror_uuid;
   m_remote_mirror_peer_uuid = remote_pool_meta.mirror_peer_uuid;
-  dout(10) << "remote_mirror_peer_uuid=" << m_remote_mirror_peer_uuid << dendl;
+  dout(10) << "remote_mirror_uuid=" << m_remote_mirror_uuid
+           << ", remote_mirror_peer_uuid=" << m_remote_mirror_peer_uuid << dendl;
 
   on_finish->complete(0);
   load_local_group_snapshots();
index dcc1c5334d2962e26d1c436599ff5db643c79bc4..7da1fd3b388c019833451333737fd679d083942e 100644 (file)
@@ -35,15 +35,14 @@ public:
       librados::IoCtx &remote_io_ctx,
       const std::string &global_group_id,
       const std::string& local_mirror_uuid,
-      const std::string& remote_mirror_uuid,
       PoolMetaCache* pool_meta_cache,
       std::string local_group_id,
       std::string remote_group_id,
       GroupCtx *local_group_ctx,
       std::list<std::pair<librados::IoCtx, ImageReplayer<ImageCtxT> *>> *image_replayers) {
     return new Replayer(threads, local_io_ctx, remote_io_ctx, global_group_id,
-        local_mirror_uuid, remote_mirror_uuid, pool_meta_cache, local_group_id,
-        remote_group_id, local_group_ctx, image_replayers);
+        local_mirror_uuid, pool_meta_cache, local_group_id, remote_group_id,
+        local_group_ctx, image_replayers);
   }
 
   Replayer(
@@ -52,7 +51,6 @@ public:
       librados::IoCtx &remote_io_ctx,
       const std::string &global_group_id,
       const std::string& local_mirror_uuid,
-      const std::string& remote_mirror_uuid,
       PoolMetaCache* pool_meta_cache,
       std::string local_group_id,
       std::string remote_group_id,