fixed replay done always return false after flashback.
This commit is contained in:
parent
4f5644639c
commit
92032e7a19
@ -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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user