]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rbd-mirror: skip setting error code on snapshot replayer shutdown 47913/head
authorIlya Dryomov <idryomov@gmail.com>
Tue, 30 Aug 2022 09:45:44 +0000 (11:45 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 1 Sep 2022 18:23:39 +0000 (20:23 +0200)
commitf1b17cafb214c853e0b594f0b8ac90dfff24e73b
treea46bc8fbcf0ed41ad901e9cdab2d5c443d80d1b4
parent8d242edf1c61410461b05570d7968dad0b67f118
rbd-mirror: skip setting error code on snapshot replayer shutdown

This is regarding failures in unregister_remote_update_watcher() and
unregister_local_update_watcher().  handle_replay_complete() can't be
called in these cases anymore as it would blindly attempt to unregister
watchers from scratch again.  Dropping handle_replay_complete() calls
there means that these failures would only be logged and would not be
surfaced by snapshot replayer.  But the only caller ignores them
anyway:

  void ImageReplayer<I>::shut_down(int r) {
    ...
    // close the replayer
    if (m_replayer != nullptr) {
      ctx = new LambdaContext([this, ctx](int r) {
        m_replayer->destroy();
        m_replayer = nullptr;
        ctx->complete(0);             <------
      });
      ctx = new LambdaContext([this, ctx](int r) {
        m_replayer->shut_down(ctx);
      });
    }

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit ced071f0de57af8cddffebca24baeb27f2a211d8)
src/test/rbd_mirror/image_replayer/snapshot/test_mock_Replayer.cc
src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc