From bc356eed4da4373130dbb493e4dfbaeeaf9a6663 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Mon, 3 Mar 2025 14:47:54 +0530 Subject: [PATCH] rbd-mirror: early detect if the mirroring instance match global group id In a case where previous primary cluster is still alive, -> Force promote site-b while site-a is still alive -> Disable group on site-b -> Re-enable group on site-b, while site-a is still alive the group is getting removed. To avoid any such cases, better to makesure the instance match with local group id, before taking any actions. Signed-off-by: Prasanna Kumar Kalever --- src/tools/rbd_mirror/group_replayer/BootstrapRequest.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tools/rbd_mirror/group_replayer/BootstrapRequest.cc b/src/tools/rbd_mirror/group_replayer/BootstrapRequest.cc index 33d6ae80f17aa..4aae3eeb555f0 100644 --- a/src/tools/rbd_mirror/group_replayer/BootstrapRequest.cc +++ b/src/tools/rbd_mirror/group_replayer/BootstrapRequest.cc @@ -699,7 +699,10 @@ void BootstrapRequest::handle_get_local_mirror_group(int r) { return; } - if (m_local_mirror_group.state == cls::rbd::MIRROR_GROUP_STATE_DISABLING) { + if (m_local_mirror_group.global_group_id != m_global_group_id) { + finish(-ERESTART); + return; + } else if (m_local_mirror_group.state == cls::rbd::MIRROR_GROUP_STATE_DISABLING) { derr << "group with same name exists: " << m_group_name << " and is currently disabling" << dendl; finish(-ERESTART); // The other group replayer might be removing the -- 2.39.5