From 2645808ea609afeba5e2474c15c99980977b8fa5 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Thu, 15 Jun 2023 19:40:16 +0530 Subject: [PATCH] rbd-mirror: fix image replayer shut down description on force promote On force promote if the opposite site is down then we currently show image status description as "local image linked to unknown peer" Previously: ---------- $ rbd --cluster=site-b mirror image status pool1/img1 img1: global_id: a73341a6-8302-4c97-ac6e-278083fd347e state: up+stopping_replay description: local image linked to unknown peer service: admin on localhost.localdomain last_update: 2023-06-15 19:47:45 peer_sites: name: site-a state: up+stopped description: local image is primary last_update: 2023-06-15 19:47:32 snapshots: 9 .mirror.primary.a73341a6-8302-4c97-ac6e-278083fd347e.1f101367-277f-42f0-8308-e51201d0529a (peer_uuids:[c46c6d97-f59b-4591-9d35-d7ff9d0d72f7]) Currently: --------- $ rbd --cluster=site-b mirror image status pool1/img1 img1: global_id: 2a6d61e1-8e76-42c4-af76-8f61ce65c7e2 state: up+stopped description: orphan (force promoting) service: admin on localhost.localdomain last_update: 2023-06-15 19:29:22 peer_sites: name: site-a state: down+stopped description: local image is primary last_update: 2023-06-15 19:29:05 snapshots: 9 .mirror.primary.2a6d61e1-8e76-42c4-af76-8f61ce65c7e2.99f82a30-0241-4e51-8428-7a2376d137f6 (peer_uuids:[3150c6ef-aeee-45dc-8d0e-5dc5a53d88eb]) Fixes: https://tracker.ceph.com/issues/52913 Signed-off-by: Prasanna Kumar Kalever (cherry picked from commit 947a53677d40fd125f041abab9b5e3fea3a8371a) --- src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc b/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc index 451c35a52119..b068eddb738e 100644 --- a/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc +++ b/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc @@ -532,6 +532,11 @@ void Replayer::scan_local_mirror_snapshots( if (m_local_mirror_snap_ns.is_non_primary() && m_local_mirror_snap_ns.primary_mirror_uuid != m_state_builder->remote_mirror_uuid) { + if (m_local_mirror_snap_ns.is_orphan()) { + dout(5) << "local image being force promoted" << dendl; + handle_replay_complete(locker, 0, "orphan (force promoting)"); + return; + } // TODO support multiple peers derr << "local image linked to unknown peer: " << m_local_mirror_snap_ns.primary_mirror_uuid << dendl; -- 2.47.3