fix get_log_hander from LSHandle

This commit is contained in:
BinChenn
2023-11-20 13:15:14 +00:00
committed by ob-robot
parent e62d6a63d6
commit 4b136cfd55
2 changed files with 8 additions and 5 deletions

View File

@ -47,20 +47,20 @@ int LogRequestHandler::get_palf_handle_guard_(const int64_t palf_id,
int LogRequestHandler::get_log_handler_( int LogRequestHandler::get_log_handler_(
const int64_t palf_id, const int64_t palf_id,
storage::ObLSHandle &ls_handle,
logservice::ObLogHandler *&log_handler) const logservice::ObLogHandler *&log_handler) const
{ {
log_handler = nullptr; log_handler = nullptr;
storage::ObLSService *ls_svr = MTL(ObLSService*); storage::ObLSService *ls_svr = MTL(ObLSService*);
storage::ObLS *ls = nullptr; storage::ObLS *ls = nullptr;
share::ObLSID ls_id(palf_id); share::ObLSID ls_id(palf_id);
storage::ObLSHandle handle;
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
if (OB_ISNULL(ls_svr)) { if (OB_ISNULL(ls_svr)) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
CLOG_LOG(ERROR, "mtl ObLSService should not be null", K(ret)); CLOG_LOG(ERROR, "mtl ObLSService should not be null", K(ret));
} else if (OB_FAIL(ls_svr->get_ls(ls_id, handle, ObLSGetMod::LOG_MOD))) { } else if (OB_FAIL(ls_svr->get_ls(ls_id, ls_handle, ObLSGetMod::LOG_MOD))) {
CLOG_LOG(WARN, "get ls failed", KR(ret), K(ls_id)); CLOG_LOG(WARN, "get ls failed", KR(ret), K(ls_id));
} else if (OB_ISNULL(ls = handle.get_ls())) { } else if (OB_ISNULL(ls = ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
CLOG_LOG(ERROR, "ls should not be null", KR(ret)); CLOG_LOG(ERROR, "ls should not be null", KR(ret));
} else if (OB_ISNULL(log_handler = ls->get_log_handler())) { } else if (OB_ISNULL(log_handler = ls->get_log_handler())) {
@ -343,8 +343,9 @@ int LogRequestHandler::change_access_mode_(const LogChangeAccessModeCmd &req)
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
const int64_t palf_id = req.ls_id_; const int64_t palf_id = req.ls_id_;
const common::ObAddr &server = req.src_; const common::ObAddr &server = req.src_;
storage::ObLSHandle ls_handle;
logservice::ObLogHandler *log_handler = nullptr; logservice::ObLogHandler *log_handler = nullptr;
if (OB_FAIL(get_log_handler_(palf_id, log_handler))) { if (OB_FAIL(get_log_handler_(palf_id, ls_handle, log_handler))) {
CLOG_LOG(WARN, "get_log_handler_ failed", K(ret), K(palf_id), K(server)); CLOG_LOG(WARN, "get_log_handler_ failed", K(ret), K(palf_id), K(server));
} else if (OB_FAIL(log_handler->change_access_mode(req.mode_version_, req.access_mode_, req.ref_scn_))) { } else if (OB_FAIL(log_handler->change_access_mode(req.mode_version_, req.access_mode_, req.ref_scn_))) {
CLOG_LOG(WARN, "change_access_mode failed", K(ret), K(palf_id), K(server)); CLOG_LOG(WARN, "change_access_mode failed", K(ret), K(palf_id), K(server));

View File

@ -58,7 +58,9 @@ private:
int get_rpc_proxy_(obrpc::ObLogServiceRpcProxy *&rpc_proxy) const; int get_rpc_proxy_(obrpc::ObLogServiceRpcProxy *&rpc_proxy) const;
int get_flashback_service_(ObLogFlashbackService *&flashback_srv) const; int get_flashback_service_(ObLogFlashbackService *&flashback_srv) const;
int get_replay_service_(ObLogReplayService *&replay_srv) const; int get_replay_service_(ObLogReplayService *&replay_srv) const;
int get_log_handler_(const int64_t palf_id, logservice::ObLogHandler *&log_handler) const; int get_log_handler_(const int64_t palf_id,
storage::ObLSHandle &ls_handle,
logservice::ObLogHandler *&log_handler) const;
int change_access_mode_(const LogChangeAccessModeCmd &req); int change_access_mode_(const LogChangeAccessModeCmd &req);
}; };