[4.2] fix session sync when fit PACKET_TOO_LARGE ERROR

This commit is contained in:
chinaxing
2023-04-26 14:03:42 +00:00
committed by ob-robot
parent 003cdcc36a
commit 2017d93174
3 changed files with 12 additions and 12 deletions

View File

@ -183,11 +183,6 @@ int ObMPQuery::process()
ret = OB_ERR_SESSION_INTERRUPTED; ret = OB_ERR_SESSION_INTERRUPTED;
LOG_WARN("session has been killed", K(session.get_session_state()), K_(sql), LOG_WARN("session has been killed", K(session.get_session_state()), K_(sql),
K(session.get_sessid()), "proxy_sessid", session.get_proxy_sessid(), K(ret)); K(session.get_sessid()), "proxy_sessid", session.get_proxy_sessid(), K(ret));
} else if (OB_UNLIKELY(packet_len > session.get_max_packet_size())) {
//packet size check with session variable max_allowd_packet or net_buffer_length
need_disconnect = false;
ret = OB_ERR_NET_PACKET_TOO_LARGE;
LOG_WARN("packet too large than allowed for the session", K_(sql), K(ret));
} else if (OB_FAIL(session.check_and_init_retry_info(*cur_trace_id, sql_))) { } else if (OB_FAIL(session.check_and_init_retry_info(*cur_trace_id, sql_))) {
// 注意,retry info和last query trace id的逻辑要写在query lock内,否则会有并发问题 // 注意,retry info和last query trace id的逻辑要写在query lock内,否则会有并发问题
LOG_WARN("fail to check and init retry info", K(ret), K(*cur_trace_id), K_(sql)); LOG_WARN("fail to check and init retry info", K(ret), K(*cur_trace_id), K_(sql));
@ -211,6 +206,11 @@ int ObMPQuery::process()
need_response_error = false; need_response_error = false;
LOG_WARN("fail to update sess info", K(ret)); LOG_WARN("fail to update sess info", K(ret));
} else if (FALSE_IT(session.post_sync_session_info())) { } else if (FALSE_IT(session.post_sync_session_info())) {
} else if (OB_UNLIKELY(packet_len > session.get_max_packet_size())) {
//packet size check with session variable max_allowd_packet or net_buffer_length
need_disconnect = false;
ret = OB_ERR_NET_PACKET_TOO_LARGE;
LOG_WARN("packet too large than allowed for the session", K_(sql), K(ret));
} else if (OB_FAIL(sql::ObFLTUtils::init_flt_info(pkt.get_extra_info(), session, } else if (OB_FAIL(sql::ObFLTUtils::init_flt_info(pkt.get_extra_info(), session,
conn->proxy_cap_flags_.is_full_link_trace_support()))) { conn->proxy_cap_flags_.is_full_link_trace_support()))) {
LOG_WARN("failed to update flt extra info", K(ret)); LOG_WARN("failed to update flt extra info", K(ret));

View File

@ -1787,10 +1787,6 @@ int ObMPStmtExecute::process()
ret = OB_ERR_SESSION_INTERRUPTED; ret = OB_ERR_SESSION_INTERRUPTED;
LOG_WARN("session has been killed", K(session.get_session_state()), K_(stmt_id), LOG_WARN("session has been killed", K(session.get_session_state()), K_(stmt_id),
K(session.get_sessid()), "proxy_sessid", session.get_proxy_sessid(), K(ret)); K(session.get_sessid()), "proxy_sessid", session.get_proxy_sessid(), K(ret));
} else if (OB_UNLIKELY(packet_len > session.get_max_packet_size())) {
//packet size check with session variable max_allowd_packet or net_buffer_length
ret = OB_ERR_NET_PACKET_TOO_LARGE;
LOG_WARN("packet too large than allowed for the session", K_(stmt_id), K(ret));
} else if (OB_FAIL(session.check_and_init_retry_info(*cur_trace_id, ctx_.cur_sql_))) { } else if (OB_FAIL(session.check_and_init_retry_info(*cur_trace_id, ctx_.cur_sql_))) {
LOG_WARN("fail to check and init retry info", K(ret), K(*cur_trace_id), K(ctx_.cur_sql_)); LOG_WARN("fail to check and init retry info", K(ret), K(*cur_trace_id), K(ctx_.cur_sql_));
} else if (OB_FAIL(session.get_query_timeout(query_timeout))) { } else if (OB_FAIL(session.get_query_timeout(query_timeout))) {
@ -1813,6 +1809,10 @@ int ObMPStmtExecute::process()
need_response_error = false; need_response_error = false;
LOG_WARN("fail to update sess info", K(ret)); LOG_WARN("fail to update sess info", K(ret));
} else if (FALSE_IT(session.post_sync_session_info())) { } else if (FALSE_IT(session.post_sync_session_info())) {
} else if (OB_UNLIKELY(packet_len > session.get_max_packet_size())) {
//packet size check with session variable max_allowd_packet or net_buffer_length
ret = OB_ERR_NET_PACKET_TOO_LARGE;
LOG_WARN("packet too large than allowed for the session", K_(stmt_id), K(ret));
} else if (OB_FAIL(sql::ObFLTUtils::init_flt_info(pkt.get_extra_info(), session, } else if (OB_FAIL(sql::ObFLTUtils::init_flt_info(pkt.get_extra_info(), session,
conn->proxy_cap_flags_.is_full_link_trace_support()))) { conn->proxy_cap_flags_.is_full_link_trace_support()))) {
LOG_WARN("failed to init flt extra info", K(ret)); LOG_WARN("failed to init flt extra info", K(ret));

View File

@ -194,9 +194,6 @@ int ObMPStmtPrepare::process()
ret = OB_ERR_SESSION_INTERRUPTED; ret = OB_ERR_SESSION_INTERRUPTED;
LOG_WARN("session has been killed", K(session.get_session_state()), K_(sql), LOG_WARN("session has been killed", K(session.get_session_state()), K_(sql),
K(session.get_sessid()), "proxy_sessid", session.get_proxy_sessid(), K(ret)); K(session.get_sessid()), "proxy_sessid", session.get_proxy_sessid(), K(ret));
} else if (OB_UNLIKELY(packet_len > session.get_max_packet_size())) {
ret = OB_ERR_NET_PACKET_TOO_LARGE;
LOG_WARN("packet too large than allowd for the session", K_(sql), K(ret));
} else if (OB_FAIL(session.get_query_timeout(query_timeout))) { } else if (OB_FAIL(session.get_query_timeout(query_timeout))) {
LOG_WARN("fail to get query timeout", K_(sql), K(ret)); LOG_WARN("fail to get query timeout", K_(sql), K(ret));
} else if (OB_FAIL(gctx_.schema_service_->get_tenant_received_broadcast_version( } else if (OB_FAIL(gctx_.schema_service_->get_tenant_received_broadcast_version(
@ -217,6 +214,9 @@ int ObMPStmtPrepare::process()
need_response_error = false; need_response_error = false;
LOG_WARN("fail to update sess info", K(ret)); LOG_WARN("fail to update sess info", K(ret));
} else if (FALSE_IT(session.post_sync_session_info())) { } else if (FALSE_IT(session.post_sync_session_info())) {
} else if (OB_UNLIKELY(packet_len > session.get_max_packet_size())) {
ret = OB_ERR_NET_PACKET_TOO_LARGE;
LOG_WARN("packet too large than allowd for the session", K_(sql), K(ret));
} else if (OB_FAIL(sql::ObFLTUtils::init_flt_info(pkt.get_extra_info(), session, } else if (OB_FAIL(sql::ObFLTUtils::init_flt_info(pkt.get_extra_info(), session,
conn->proxy_cap_flags_.is_full_link_trace_support()))) { conn->proxy_cap_flags_.is_full_link_trace_support()))) {
LOG_WARN("failed to init flt extra info", K(ret)); LOG_WARN("failed to init flt extra info", K(ret));