修复shared storeage模式下set_base_lsn报错导致日志盘爆

This commit is contained in:
HaHaJeff 2024-10-28 13:49:52 +00:00 committed by ob-robot
parent efc891ee0f
commit 7955b54ff0
3 changed files with 13 additions and 5 deletions

View File

@ -480,18 +480,27 @@ int LogRequestHandler::handle_sync_request<LogGetCkptReq, LogGetCkptResp>(
return ret;
}
#ifdef OB_BUILD_SHARED_STORAGE
template <>
int LogRequestHandler::handle_request<LogSyncBaseLSNReq>(const LogSyncBaseLSNReq &req)
{
int ret = common::OB_SUCCESS;
if (OB_UNLIKELY(!req.is_valid())) {
ret = OB_INVALID_ARGUMENT;
PALF_LOG(ERROR, "Invalid argument!!!", K(req));
CLOG_LOG(ERROR, "Invalid argument!!!", K(req));
} else if (!GCTX.is_shared_storage_mode()) {
ret = OB_ERR_UNEXPECTED;
CLOG_LOG(ERROR, "unexcepted error, mustn't use this interface in non-shared storage mode, ", K(req));
} else {
LSN end_lsn;
LSN base_lsn;
palf::PalfHandleGuard palf_handle_guard;
if (OB_FAIL(get_palf_handle_guard_(req.ls_id_.id(), palf_handle_guard))) {
CLOG_LOG(WARN, "get_palf_handle_guard_ failed", K(req));
} else if (OB_FAIL(palf_handle_guard.advance_base_lsn(req.base_lsn_))) {
} else if (OB_FAIL(palf_handle_guard.get_end_lsn(end_lsn))) {
CLOG_LOG(WARN, "get_end_lsnf failed", KR(ret), K(req));
} else if (FALSE_IT(base_lsn = MIN(end_lsn, req.base_lsn_))) {
} else if (OB_FAIL(palf_handle_guard.advance_base_lsn(base_lsn))) {
PALF_LOG(WARN, "PalfHandleImpl update_base_lsn failed", K(req));
} else {
PALF_LOG(TRACE, "handle sync_base_lsn success", K(req));
@ -500,7 +509,6 @@ int LogRequestHandler::handle_request<LogSyncBaseLSNReq>(const LogSyncBaseLSNReq
return ret;
}
#ifdef OB_BUILD_SHARED_STORAGE
template <>
int LogRequestHandler::handle_request<LogAcquireRebuildInfoMsg>(const LogAcquireRebuildInfoMsg &req)
{

View File

@ -134,11 +134,11 @@ DEFINE_LOGSERVICE_SYNC_RPC_PROCESSOR(LogGetCkptReqP,
LogGetCkptResp,
obrpc::OB_LOG_GET_LS_CKPT);
#ifdef OB_BUILD_SHARED_STORAGE
DEFINE_LOGSERVICE_RPC_PROCESSOR(LogSyncBaseLSNReqP,
obrpc::ObLogServiceRpcProxy,
LogSyncBaseLSNReq,
obrpc::OB_LOG_SYNC_BASE_LSN_REQ);
#ifdef OB_BUILD_SHARED_STORAGE
DEFINE_LOGSERVICE_RPC_PROCESSOR(LogAcquireRebuildInfoP,
obrpc::ObLogServiceRpcProxy,
LogAcquireRebuildInfoMsg,

View File

@ -207,8 +207,8 @@ void oceanbase::observer::init_srv_xlator_for_logservice(ObSrvRpcXlator *xlator)
RPC_PROCESSOR(logservice::LogProbeRsP);
#endif
RPC_PROCESSOR(logservice::LogGetCkptReqP);
RPC_PROCESSOR(logservice::LogSyncBaseLSNReqP);
#ifdef OB_BUILD_SHARED_STORAGE
RPC_PROCESSOR(logservice::LogSyncBaseLSNReqP);
RPC_PROCESSOR(logservice::LogAcquireRebuildInfoP);
#endif
}