From 4cd7b67aaad9d09c99f7bfc2cf9a33093327d3f9 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 14 May 2018 10:34:28 -0400 Subject: [PATCH] rbd-mirror: do not propagate image map instance updates when shutting down Signed-off-by: Jason Dillaman (cherry picked from commit 4525b7a597ccfa6e966243e24bd9e9662c994a41) --- src/tools/rbd_mirror/PoolReplayer.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/tools/rbd_mirror/PoolReplayer.cc b/src/tools/rbd_mirror/PoolReplayer.cc index 0950546aa2b7b..ea28a27c70c76 100644 --- a/src/tools/rbd_mirror/PoolReplayer.cc +++ b/src/tools/rbd_mirror/PoolReplayer.cc @@ -1040,7 +1040,12 @@ void PoolReplayer::handle_remove_image(const std::string &mirror_uuid, template void PoolReplayer::handle_instances_added(const InstanceIds &instance_ids) { dout(5) << "instance_ids=" << instance_ids << dendl; + Mutex::Locker locker(m_lock); + if (!m_leader_watcher->is_leader()) { + return; + } + assert(m_image_map); m_image_map->update_instances_added(instance_ids); } @@ -1048,7 +1053,12 @@ template void PoolReplayer::handle_instances_removed( const InstanceIds &instance_ids) { dout(5) << "instance_ids=" << instance_ids << dendl; + Mutex::Locker locker(m_lock); + if (!m_leader_watcher->is_leader()) { + return; + } + assert(m_image_map); m_image_map->update_instances_removed(instance_ids); } -- 2.39.5