From 9ba94f303072374b5c7c9265c3a493fddce2f8ca Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 4 May 2018 09:23:27 -0400 Subject: [PATCH] rbd-mirror: ensure instance replayer is stoped before destructing Fixes: http://tracker.ceph.com/issues/24008 Signed-off-by: Jason Dillaman --- src/tools/rbd_mirror/PoolReplayer.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tools/rbd_mirror/PoolReplayer.cc b/src/tools/rbd_mirror/PoolReplayer.cc index 90d04868a4a5a..7dee40a30b832 100644 --- a/src/tools/rbd_mirror/PoolReplayer.cc +++ b/src/tools/rbd_mirror/PoolReplayer.cc @@ -377,17 +377,18 @@ void PoolReplayer::shut_down() { } if (m_leader_watcher) { m_leader_watcher->shut_down(); - m_leader_watcher.reset(); } if (m_instance_watcher) { m_instance_watcher->shut_down(); - m_instance_watcher.reset(); } if (m_instance_replayer) { m_instance_replayer->shut_down(); - m_instance_replayer.reset(); } + m_leader_watcher.reset(); + m_instance_watcher.reset(); + m_instance_replayer.reset(); + assert(!m_image_map); assert(!m_image_deleter); assert(!m_local_pool_watcher); @@ -529,6 +530,8 @@ void PoolReplayer::run() m_cond.WaitInterval(m_lock, utime_t(1, 0)); } } + + m_instance_replayer->stop(); } template -- 2.39.5