From: Jason Dillaman Date: Mon, 16 Dec 2019 14:46:15 +0000 (-0500) Subject: rbd-mirror: ensure deterministic ordering of method calls X-Git-Tag: v15.1.0~479^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=29772bf2c099ea6d6587f8ebf8635afd809cae09;p=ceph.git rbd-mirror: ensure deterministic ordering of method calls The mock tests will require method calls in a known order. Previously different environments could evaluate the parameters in different orders resulting in out-of-order method calls. Signed-off-by: Jason Dillaman --- diff --git a/src/test/rbd_mirror/test_mock_ImageReplayer.cc b/src/test/rbd_mirror/test_mock_ImageReplayer.cc index f627d752d2de..76a8eb393194 100644 --- a/src/test/rbd_mirror/test_mock_ImageReplayer.cc +++ b/src/test/rbd_mirror/test_mock_ImageReplayer.cc @@ -965,10 +965,10 @@ TEST_F(TestMockImageReplayer, ReplayerInterrupted) { .WillOnce(Return(false)); EXPECT_CALL(mock_journal_replayer, is_replaying()) .WillOnce(Return(false)); - EXPECT_CALL(mock_journal_replayer, get_error_description()) - .WillOnce(Return("INVALID")); EXPECT_CALL(mock_journal_replayer, get_error_code()) .WillOnce(Return(-EINVAL)); + EXPECT_CALL(mock_journal_replayer, get_error_description()) + .WillOnce(Return("INVALID")); expect_shut_down(mock_journal_replayer, 0); expect_mirror_image_status_exists(false); mock_journal_replayer.replayer_listener->handle_notification(); diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index efe2ba4e2372..27fbc4b73783 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -1078,9 +1078,12 @@ void ImageReplayer::handle_replayer_notification() { } if (!m_replayer->is_replaying()) { - dout(10) << "replay interrupted" << dendl; - on_stop_journal_replay(m_replayer->get_error_code(), - m_replayer->get_error_description()); + auto error_code = m_replayer->get_error_code(); + auto error_description = m_replayer->get_error_description(); + dout(10) << "replay interrupted: " + << "r=" << error_code << ", " + << "error=" << error_description << dendl; + on_stop_journal_replay(error_code, error_description); return; }