diff --git a/src/share/ob_time_zone_info_manager.cpp b/src/share/ob_time_zone_info_manager.cpp index ea0a96268..84dd22be5 100644 --- a/src/share/ob_time_zone_info_manager.cpp +++ b/src/share/ob_time_zone_info_manager.cpp @@ -142,43 +142,46 @@ void ObTimeZoneInfoManager::TaskProcessThread::handle(void *task) int ObTimeZoneInfoManager::fetch_time_zone_info() { int ret = OB_SUCCESS; - if (OB_UNLIKELY(!inited_)) { - ret = OB_NOT_INIT; - LOG_WARN("not init", K(ret)); - } else { - int64_t current_tz_version = -1; - ObSQLClientRetryWeak sql_client_retry_weak(&sql_proxy_, tenant_id_, OB_ALL_SYS_STAT_TID); - SMART_VAR(ObMySQLProxy::MySQLResult, res) { - sqlclient::ObMySQLResult *result = NULL; - if (OB_FAIL(sql_client_retry_weak.read(res, tenant_id_, FETCH_LATEST_TZ_VERSION_SQL))) { - LOG_WARN("fail to execute sql", K(ret), K(tenant_id_)); - } else if (OB_ISNULL(result = res.get_result())) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("fail to get result", K(result), K(ret)); - } else if (OB_FAIL(result->next())) { - if (OB_ITER_END == ret) { - // all_sys_stat中没有timezone_version,说明处于升级过程中 - ret = OB_SUCCESS; - } else { - LOG_WARN("ObMySQLResult next failed", K(ret)); - } - } else { - ObString version_str; - EXTRACT_VARCHAR_FIELD_MYSQL(*result, "value", version_str); - bool is_valid = false; - current_tz_version = ObFastAtoi::atoi(version_str.ptr(), - version_str.ptr() + version_str.length(), is_valid); - if (!is_valid) { + MTL_SWITCH(tenant_id_) { + if (OB_UNLIKELY(!inited_)) { + ret = OB_NOT_INIT; + LOG_WARN("not init", K(ret)); + } else { + int64_t current_tz_version = -1; + ObSQLClientRetryWeak sql_client_retry_weak(&sql_proxy_, tenant_id_, OB_ALL_SYS_STAT_TID); + SMART_VAR(ObMySQLProxy::MySQLResult, res) { + sqlclient::ObMySQLResult *result = NULL; + if (OB_FAIL(sql_client_retry_weak.read(res, tenant_id_, FETCH_LATEST_TZ_VERSION_SQL))) { + LOG_WARN("fail to execute sql", K(ret), K(tenant_id_)); + } else if (OB_ISNULL(result = res.get_result())) { ret = OB_ERR_UNEXPECTED; - LOG_WARN("invalid key version", K(ret), K(version_str)); + LOG_WARN("fail to get result", K(result), K(ret)); + } else if (OB_FAIL(result->next())) { + if (OB_ITER_END == ret) { + // all_sys_stat中没有timezone_version,说明处于升级过程中 + ret = OB_SUCCESS; + } else { + LOG_WARN("ObMySQLResult next failed", K(ret)); + } + } else { + ObString version_str; + EXTRACT_VARCHAR_FIELD_MYSQL(*result, "value", version_str); + bool is_valid = false; + current_tz_version = ObFastAtoi::atoi(version_str.ptr(), + version_str.ptr() + version_str.length(), is_valid); + if (!is_valid) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid key version", K(ret), K(version_str)); + } } } - } - if (OB_FAIL(ret)) { - } else if (OB_FAIL(fetch_time_zone_info_from_tenant_table(current_tz_version))) { - LOG_WARN("fetch timezone info from tenant tz table failed", K(ret)); + if (OB_FAIL(ret)) { + } else if (OB_FAIL(fetch_time_zone_info_from_tenant_table(current_tz_version))) { + LOG_WARN("fetch timezone info from tenant tz table failed", K(ret)); + } } } + return ret; }