From: Jason Dillaman Date: Wed, 9 May 2018 14:25:22 +0000 (-0400) Subject: rbd-mirror: avoid sending duplicate re-acquire messages upon leader startup X-Git-Tag: v13.1.1~1^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0e120933647522fc60f562ee2cfaac99248c3173;p=ceph.git rbd-mirror: avoid sending duplicate re-acquire messages upon leader startup Signed-off-by: Jason Dillaman (cherry picked from commit a9d335d8399984b338d7cfe2b7d49e1f67940ebf) --- diff --git a/src/tools/rbd_mirror/image_map/Policy.cc b/src/tools/rbd_mirror/image_map/Policy.cc index a60c8fc04208..03c5705b656a 100644 --- a/src/tools/rbd_mirror/image_map/Policy.cc +++ b/src/tools/rbd_mirror/image_map/Policy.cc @@ -90,6 +90,11 @@ bool Policy::add_image(const std::string &global_image_id) { auto image_state_result = m_image_states.emplace(global_image_id, ImageState{}); auto& image_state = image_state_result.first->second; + if (image_state.state == StateTransition::STATE_INITIALIZING) { + // avoid duplicate acquire notifications upon leader startup + return false; + } + return set_state(&image_state, StateTransition::STATE_ASSOCIATING, false); }