From 8dd3ce1ac3dbc9c7b67bf0b16f5f345d3286d7ec Mon Sep 17 00:00:00 2001 From: chinaxing Date: Wed, 15 Feb 2023 03:17:11 +0000 Subject: [PATCH] [master][txn-route] fix multi-stmt return txn-state --- src/observer/mysql/obmp_packet_sender.cpp | 9 +++++++-- src/observer/mysql/obmp_utils.cpp | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/observer/mysql/obmp_packet_sender.cpp b/src/observer/mysql/obmp_packet_sender.cpp index 556f9b20aa..425981742c 100644 --- a/src/observer/mysql/obmp_packet_sender.cpp +++ b/src/observer/mysql/obmp_packet_sender.cpp @@ -659,9 +659,14 @@ int ObMPPacketSender::send_ok_packet(ObSQLSessionInfo &session, ObOKPParam &ok_p if (OB_SUCC(ret) && OB_FAIL(alloc_ezbuf())) { LOG_WARN("ez_buf_ alloc failed", K(ret)); } - if (OB_SUCC(ret) && conn_->is_support_sessinfo_sync() && proto20_context_.is_proto20_used_) { + // calc txn free route info if multi-stmt has stop execution + if (OB_SUCC(ret) + && !ok_param.has_more_result_ + && conn_->is_support_sessinfo_sync() + && proto20_context_.is_proto20_used_) { + LOG_DEBUG("calc txn free route info", K(session)); if (OB_FAIL(session.calc_txn_free_route())) { - SERVER_LOG(WARN, "fail calculate txn free route info", K(ret)); + SERVER_LOG(WARN, "fail calculate txn free route info", K(ret), K(session.get_sessid())); } } if (OB_SUCC(ret)) { diff --git a/src/observer/mysql/obmp_utils.cpp b/src/observer/mysql/obmp_utils.cpp index 1bc6c7053d..b4a431b836 100644 --- a/src/observer/mysql/obmp_utils.cpp +++ b/src/observer/mysql/obmp_utils.cpp @@ -151,7 +151,7 @@ int ObMPUtils::sync_session_info(sql::ObSQLSessionInfo &sess, const common::ObSt (oceanbase::sql::SessionSyncInfoType)(info_type), buf, (int64_t)info_len + pos0, pos0))) { LOG_WARN("failed to update session sync info", - K(ret), K(info_type), K(succ_info_types), K(pos), K(info_len), K(info_len+pos)); + K(ret), K(info_type), K(sess.get_sessid()), K(succ_info_types), K(pos), K(info_len), K(info_len+pos)); } else { pos += info_len; } -- GitLab