From 2657cc100eb5b406398d542e0faefabe707fa1b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Wed, 10 Feb 2021 09:42:12 +0200 Subject: [PATCH] MXS-3330: Book only expected responses Responses generated by replayed session commands must not be treated as actual responses to retained statements. In 2.5 this is not a problem as it is done implicitly with the pre-assignment of the server that delivers the session command response. --- server/modules/routing/readwritesplit/rwsplitsession.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/modules/routing/readwritesplit/rwsplitsession.cc b/server/modules/routing/readwritesplit/rwsplitsession.cc index 9d91649e0..decb769f8 100644 --- a/server/modules/routing/readwritesplit/rwsplitsession.cc +++ b/server/modules/routing/readwritesplit/rwsplitsession.cc @@ -734,7 +734,10 @@ void RWSplitSession::clientReply(GWBUF* writebuf, DCB* backend_dcb) /** Got a complete reply, decrement expected response count */ m_expected_responses--; - session_book_server_response(m_pSession, backend->backend()->server, m_expected_responses == 0); + if (!backend->is_replaying_history()) + { + session_book_server_response(m_pSession, backend->backend()->server, m_expected_responses == 0); + } mxb_assert(m_expected_responses >= 0); mxb_assert(backend->get_reply_state() == REPLY_STATE_DONE);