From d3363e61395bc5789533285c77ccff5be0c4b412 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Wed, 17 Oct 2018 17:16:05 -0400 Subject: [PATCH] rbd-mirror: always attempt to restart canceled status update task Fixes: http://tracker.ceph.com/issues/36500 Signed-off-by: Jason Dillaman --- src/tools/rbd_mirror/ImageReplayer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index aeb91d50dea..57adaca3bf4 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -1491,9 +1491,8 @@ void ImageReplayer::reschedule_update_status_task(int new_interval) { m_update_status_interval = new_interval; } - bool restarting = (new_interval == 0 || canceled_task); if (new_interval >= 0 && is_running_() && - start_mirror_image_status_update(false, restarting)) { + start_mirror_image_status_update(true, false)) { m_update_status_task = new FunctionContext( [this](int r) { ceph_assert(m_threads->timer_lock.is_locked()); @@ -1509,6 +1508,7 @@ void ImageReplayer::reschedule_update_status_task(int new_interval) { } if (canceled_task) { + // decrement in-flight status update counter for canceled task finish_mirror_image_status_update(); } } -- 2.47.3