From 725d96320791e866f42b002176946997e548a0da Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 2 Mar 2020 15:34:22 -0500 Subject: [PATCH] rbd-mirror: move resetting of snapshot replayer rescan variable The `m_image_updated` boolean should be reset at the start of the state checking loop now that we scan the local image meta and check for forced-promotion of the local image. Signed-off-by: Jason Dillaman --- src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc b/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc index 3d5003a0c1b..2bb495913a5 100644 --- a/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc +++ b/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc @@ -279,6 +279,12 @@ template void Replayer::load_local_image_meta() { dout(10) << dendl; + { + // reset state in case new snapshot is added while we are scanning + std::unique_lock locker{m_lock}; + m_image_updated = false; + } + ceph_assert(m_state_builder->local_image_meta != nullptr); auto ctx = create_context_callback< Replayer, &Replayer::handle_load_local_image_meta>(this); @@ -461,9 +467,6 @@ void Replayer::scan_remote_mirror_snapshots( std::unique_lock* locker) { dout(10) << dendl; - // reset state in case new snapshot is added while we are scanning - m_image_updated = false; - bool split_brain = false; bool remote_demoted = false; auto remote_image_ctx = m_state_builder->remote_image_ctx; -- 2.39.5