From bfc064e4cb0bde49e890a6275a9ac53f5dc1cd63 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Wed, 26 Feb 2020 22:25:03 -0500 Subject: [PATCH] rbd-mirror: do not re-register the ASOK if the image replayer isn't running Avoid the possibility of a race when shutting down and post-unregister a status update causes the ASOK to become re-registered. Signed-off-by: Jason Dillaman --- src/tools/rbd_mirror/ImageReplayer.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index 6f6056e75ab..8068ef67871 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -1047,7 +1047,14 @@ void ImageReplayer::reregister_admin_socket_hook() { return; } + dout(15) << "old_image_spec=" << m_image_spec << ", " + << "new_image_spec=" << image_spec << dendl; m_image_spec = image_spec; + + if (m_state == STATE_STOPPING || m_state == STATE_STOPPED) { + // no need to re-register if stopping + return; + } locker.unlock(); unregister_admin_socket_hook(); -- 2.39.5