fix diagnose replay return OB_STATE_NOT_MATCH

This commit is contained in:
obdev
2023-03-20 22:09:09 +08:00
committed by ob-robot
parent 4b49ed92fc
commit 401e98e126
2 changed files with 8 additions and 3 deletions

View File

@ -181,6 +181,8 @@ int ObLogReplayService::init(PalfEnv *palf_env,
{
int ret = OB_SUCCESS;
const uint64_t MAP_TENANT_ID = MTL_ID();
omt::ObTenantConfigGuard tenant_config(TENANT_CONF(MAP_TENANT_ID));
int64_t thread_quota = std::max(1L, static_cast<int64_t>(tenant_config.is_valid() ? tenant_config->cpu_quota_concurrency : 4));
if (is_inited_) {
ret = OB_INIT_TWICE;
@ -192,7 +194,7 @@ int ObLogReplayService::init(PalfEnv *palf_env,
CLOG_LOG(WARN, "invalid argument", K(ret), KP(palf_env), KP(ls_adapter), KP(allocator));
} else if (OB_FAIL(TG_CREATE_TENANT(lib::TGDefIDs::ReplayService, tg_id_))) {
CLOG_LOG(WARN, "fail to create thread group", K(ret));
} else if (OB_FAIL(MTL_REGISTER_THREAD_DYNAMIC(1, tg_id_))) {
} else if (OB_FAIL(MTL_REGISTER_THREAD_DYNAMIC(thread_quota, tg_id_))) {
CLOG_LOG(WARN, "MTL_REGISTER_THREAD_DYNAMIC failed", K(ret), K(tg_id_));
} else if (OB_FAIL(replay_status_map_.init("REPLAY_STATUS", MAP_TENANT_ID))) {
CLOG_LOG(WARN, "replay_status_map_ init error", K(ret));

View File

@ -1380,8 +1380,10 @@ int ObReplayStatus::diagnose(ReplayDiagnoseInfo &diagnose_info)
} else if (0 < retry_cost || 0 < replay_cost) {
replay_ret = OB_EAGAIN;
}
if (OB_SUCC(ret)) {
if (OB_FAIL(diagnose_info.diagnose_str_.append_fmt("ret:%d; "
if (OB_SUCC(ret) || OB_STATE_NOT_MATCH == ret) {
ret = OB_SUCCESS;
if (OB_FAIL(diagnose_info.diagnose_str_.append_fmt("is_enabled:%s"
"ret:%d; "
"min_unreplayed_lsn:%ld; "
"min_unreplayed_scn:%lu; "
"replay_hint:%ld; "
@ -1389,6 +1391,7 @@ int ObReplayStatus::diagnose(ReplayDiagnoseInfo &diagnose_info)
"replay_cost:%ld; "
"retry_cost:%ld; "
"first_handle_time:%ld;" ,
is_enabled_? "true" : "false",
replay_ret, min_unreplayed_lsn.val_,
min_unreplayed_scn.get_val_for_inner_table_field(), replay_hint,
is_submit_err ? "REPLAY_SUBMIT" : log_type_str,