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: v13.1.1~37^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=43bbf99f9f9a07b332a9ed269177b9310bd4b7a6;p=ceph.git rbd-mirror: ensure instance replayer is stoped before destructing Fixes: http://tracker.ceph.com/issues/24008 Signed-off-by: Jason Dillaman (cherry picked from commit 9ba94f303072374b5c7c9265c3a493fddce2f8ca) --- 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