From 7fa56784009ab2ff1435557ca239e31327457b20 Mon Sep 17 00:00:00 2001 From: maosy <630014370@qq.com> Date: Sat, 10 Feb 2024 08:13:27 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=86=85=E5=AD=98=E4=B8=AD?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E7=9A=84config=5Fversion=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E5=AF=BC=E8=87=B4=E4=B8=8D=E6=B1=87=E6=8A=A5=E5=86=85?= =?UTF-8?q?=E9=83=A8=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rootserver/ob_ls_recovery_stat_handler.cpp | 7 ++++--- src/share/ls/ob_ls_i_life_manager.h | 1 + src/share/ls/ob_ls_recovery_stat_operator.cpp | 9 ++++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/rootserver/ob_ls_recovery_stat_handler.cpp b/src/rootserver/ob_ls_recovery_stat_handler.cpp index 574709ffd..90bcc8a24 100755 --- a/src/rootserver/ob_ls_recovery_stat_handler.cpp +++ b/src/rootserver/ob_ls_recovery_stat_handler.cpp @@ -382,10 +382,11 @@ int ObLSRecoveryStatHandler::try_reload_and_fix_config_version_(const palf::LogC //set invalid config version SpinWLockGuard guard(lock_); config_version_in_inner_.reset(); + } else { + SpinWLockGuard guard(lock_); + readable_scn_in_inner_ = readable_scn; + config_version_in_inner_ = current_version; } - SpinWLockGuard guard(lock_); - readable_scn_in_inner_ = readable_scn; - config_version_in_inner_ = current_version; } return ret; } diff --git a/src/share/ls/ob_ls_i_life_manager.h b/src/share/ls/ob_ls_i_life_manager.h index 933a205dc..59ba1f0bd 100644 --- a/src/share/ls/ob_ls_i_life_manager.h +++ b/src/share/ls/ob_ls_i_life_manager.h @@ -39,6 +39,7 @@ namespace share { class ObLSID; struct ObLSStatusInfo; + #define ALL_LS_EVENT_ADD(tenant_id, ls_id, event, ret, sql, args...)\ do {\ const int64_t MAX_VALUE_LENGTH = 512; \ diff --git a/src/share/ls/ob_ls_recovery_stat_operator.cpp b/src/share/ls/ob_ls_recovery_stat_operator.cpp index c99412fd3..04d82af7a 100644 --- a/src/share/ls/ob_ls_recovery_stat_operator.cpp +++ b/src/share/ls/ob_ls_recovery_stat_operator.cpp @@ -19,6 +19,7 @@ #include "share/inner_table/ob_inner_table_schema.h" #include "lib/string/ob_sql_string.h"//ObSqlString #include "lib/mysqlclient/ob_mysql_transaction.h"//ObMySQLTransaction +#include "lib/utility/ob_tracepoint.h" #include "common/ob_timeout_ctx.h" #include "share/ob_share_util.h" #include "share/ls/ob_ls_status_operator.h" @@ -486,6 +487,7 @@ int ObLSRecoveryStatOperator::get_tenant_min_user_ls_create_scn(const uint64_t t return ret; } +ERRSIM_POINT_DEF(EN_END_TRANSACTION_ERROR); int ObLSRecoveryStatOperator::update_ls_config_version( const uint64_t tenant_id, const ObLSID &ls_id, const palf::LogConfigVersion &config_version, ObMySQLProxy &client, @@ -501,7 +503,7 @@ int ObLSRecoveryStatOperator::update_ls_config_version( ObLSRecoveryStat ls_recovery_stat; START_TRANSACTION(&client, exec_tenant_id) if (FAILEDx(get_ls_recovery_stat(tenant_id, ls_id, true, - ls_recovery_stat, trans))) { + ls_recovery_stat, trans))) { LOG_WARN("failed to get ls recovery stat", KR(ret), K(tenant_id), K(ls_id)); } else if (ls_recovery_stat.get_config_version().is_valid() && ls_recovery_stat.get_config_version() > config_version) { @@ -534,6 +536,11 @@ int ObLSRecoveryStatOperator::update_ls_config_version( if (OB_SUCC(ret)) { readable_scn = ls_recovery_stat.get_readable_scn(); } + if (EN_END_TRANSACTION_ERROR) { + ret = EN_END_TRANSACTION_ERROR; + SHARE_LOG(ERROR, "set end transaction error", KR(ret)); + } + END_TRANSACTION(trans) } return ret;