From: Jason Dillaman Date: Fri, 4 May 2018 13:23:27 +0000 (-0400) Subject: rbd-mirror: ensure instance replayer is stoped before destructing X-Git-Tag: v14.0.0~167^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9ba94f303072374b5c7c9265c3a493fddce2f8ca;p=ceph.git rbd-mirror: ensure instance replayer is stoped before destructing Fixes: http://tracker.ceph.com/issues/24008 Signed-off-by: Jason Dillaman --- diff --git a/src/tools/rbd_mirror/PoolReplayer.cc b/src/tools/rbd_mirror/PoolReplayer.cc index 90d04868a4a5..7dee40a30b83 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