From 882bc06f5424b837cc9bcea58c3394a761e30543 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 28 Mar 2016 10:48:02 -0400 Subject: [PATCH] rbd-mirror: update mirror peer sync state after completion Signed-off-by: Jason Dillaman --- .../rbd_mirror/image_sync/test_mock_SyncPointPruneRequest.cc | 2 ++ src/tools/rbd_mirror/image_sync/SyncPointPruneRequest.cc | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/test/rbd_mirror/image_sync/test_mock_SyncPointPruneRequest.cc b/src/test/rbd_mirror/image_sync/test_mock_SyncPointPruneRequest.cc index 4558d6c55ffe1..e45bf78395844 100644 --- a/src/test/rbd_mirror/image_sync/test_mock_SyncPointPruneRequest.cc +++ b/src/test/rbd_mirror/image_sync/test_mock_SyncPointPruneRequest.cc @@ -109,6 +109,7 @@ TEST_F(TestMockImageSyncSyncPointPruneRequest, SyncCompleteSuccess) { librbd::journal::MirrorPeerClientMeta client_meta; client_meta.sync_points.emplace_front("snap1", boost::none); m_client_meta = client_meta; + ASSERT_EQ(librbd::journal::MIRROR_PEER_STATE_SYNCING, m_client_meta.state); librbd::MockImageCtx mock_remote_image_ctx(*m_remote_image_ctx); journal::MockJournaler mock_journaler; @@ -124,6 +125,7 @@ TEST_F(TestMockImageSyncSyncPointPruneRequest, SyncCompleteSuccess) { req->send(); ASSERT_EQ(0, ctx.wait()); ASSERT_TRUE(m_client_meta.sync_points.empty()); + ASSERT_EQ(librbd::journal::MIRROR_PEER_STATE_REPLAYING, m_client_meta.state); } TEST_F(TestMockImageSyncSyncPointPruneRequest, RestartedSyncCompleteSuccess) { diff --git a/src/tools/rbd_mirror/image_sync/SyncPointPruneRequest.cc b/src/tools/rbd_mirror/image_sync/SyncPointPruneRequest.cc index 4b72bc26ee8f3..332cb00e08342 100644 --- a/src/tools/rbd_mirror/image_sync/SyncPointPruneRequest.cc +++ b/src/tools/rbd_mirror/image_sync/SyncPointPruneRequest.cc @@ -154,6 +154,9 @@ void SyncPointPruneRequest::send_update_client() { if (m_sync_complete) { m_client_meta_copy.sync_points.pop_front(); + if (m_client_meta_copy.sync_points.empty()) { + m_client_meta_copy.state = librbd::journal::MIRROR_PEER_STATE_REPLAYING; + } } else { while (m_client_meta_copy.sync_points.size() > 1) { m_client_meta_copy.sync_points.pop_back(); -- 2.39.5