From: Jason Dillaman Date: Mon, 31 Jul 2017 14:20:02 +0000 (-0400) Subject: rbd-mirror: assertion failure during pool replayer shut down X-Git-Tag: v12.1.3~66^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=33f5e1bc3f247ebced7fda10cfea7ea1511ab2a9;p=ceph.git rbd-mirror: assertion failure during pool replayer shut down Fixes: http://tracker.ceph.com/issues/20644 Signed-off-by: Jason Dillaman --- diff --git a/src/tools/rbd_mirror/PoolReplayer.cc b/src/tools/rbd_mirror/PoolReplayer.cc index fd0b21b1847d..34b679a83f87 100644 --- a/src/tools/rbd_mirror/PoolReplayer.cc +++ b/src/tools/rbd_mirror/PoolReplayer.cc @@ -357,12 +357,15 @@ 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(); } assert(!m_local_pool_watcher); @@ -471,7 +474,9 @@ void PoolReplayer::run() break; } - m_cond.WaitInterval(m_lock, utime_t(1, 0)); + if (!m_stopping) { + m_cond.WaitInterval(m_lock, utime_t(1, 0)); + } } }