提交 92032e7a 编写于 作者: H HaHaJeff 提交者: ob-robot

fixed replay done always return false after flashback.

上级 4f564463
......@@ -356,10 +356,10 @@ int LogRequestHandler::handle_request<LogFlashbackMsg>(const LogFlashbackMsg &re
ret = OB_STATE_NOT_MATCH;
CLOG_LOG(WARN, "access_mode do not match, can not do flashback", K(ret), K(palf_id), K(self), K(curr_mode_version),
K(curr_access_mode), K(req));
} else if (OB_FAIL(replay_srv->flashback(ls_id))) {
CLOG_LOG(WARN, "replay_service flashback failed", K(ret), K(ls_id));
} else if (OB_FAIL(palf_handle_guard.flashback(req.mode_version_, req.flashback_scn_, FLASHBACK_TIMEOUT_US))) {
CLOG_LOG(WARN, "flashback failed", K(ret), K(palf_id), K(req));
} else if (OB_FAIL(replay_srv->flashback(ls_id))) {
CLOG_LOG(WARN, "replay_service flashback failed", K(ret), K(ls_id));
} else if (OB_FAIL(get_rpc_proxy_(rpc_proxy))) {
CLOG_LOG(WARN, "get_rpc_proxy_ failed", K(ret), K(palf_id));
} else if (OB_FAIL(get_self_addr_(self))) {
......
......@@ -839,7 +839,7 @@ int ObReplayStatus::flashback()
int ret = OB_SUCCESS;
WLockGuardWithRetryInterval wguard(rwlock_, WRLOCK_TRY_THRESHOLD, WRLOCK_RETRY_INTERVAL);
if (OB_FAIL(flashback_())) {
CLOG_LOG(WARN, "replay status flashback failed", K(ret), KPC(this));
CLOG_LOG(WARN, "replay status flashback failed", K(ret), KPC(this));
} else {
CLOG_LOG(INFO, "replay status flashback success", K(ret), KPC(this));
}
......@@ -849,14 +849,13 @@ int ObReplayStatus::flashback()
int ObReplayStatus::flashback_()
{
int ret = OB_SUCCESS;
LSN next_to_submit_lsn;
SCN next_to_submit_scn;
ObLogReplayTask *cache_task = NULL;
// committed_end_lsn may be smaller than exact value after flashback
if (OB_FAIL(submit_log_task_.get_next_to_submit_log_info(next_to_submit_lsn, next_to_submit_scn))) {
CLOG_LOG(WARN, "get_next_to_submit_log_info failed", K(ret), KPC(this));
} else if (OB_FAIL(submit_log_task_.set_committed_end_lsn(next_to_submit_lsn))) {
CLOG_LOG(WARN, "set_committed_end_lsn failed", K(ret), KPC(this), K(next_to_submit_lsn));
// bugfix:
LSN committed_end_lsn;
if (OB_FAIL(palf_handle_.get_end_lsn(committed_end_lsn))) {
CLOG_LOG(WARN, "get_end_lsn failed", K(ret), KPC(this));
} else if (OB_FAIL(submit_log_task_.set_committed_end_lsn(committed_end_lsn))) {
CLOG_LOG(WARN, "set_committed_end_lsn failed", K(ret), KPC(this), K(committed_end_lsn));
} else {
// do nothing
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册