Patch some commits to open source branch

This commit is contained in:
rl0
2021-07-22 00:31:09 +08:00
committed by wangzelin.wzl
parent 69fa727d91
commit 5839aec035
30 changed files with 2827 additions and 291 deletions

View File

@ -589,8 +589,14 @@ int ObLogMembershipTaskMgr::submit_confirmed_info_(const uint64_t log_id, const
uint64_t cur_renew_log_id = cur_renew_ms_task_.get_log_id();
ObProposalID cur_ms_proposal_id = mm_->get_ms_proposal_id();
if (log_id != cur_renew_log_id || ms_proposal_id != cur_ms_proposal_id ||
ms_proposal_id != log_task.get_proposal_id()) {
int64_t confirmed_info_data_checksum = confirmed_info.get_data_checksum();
int64_t confirmed_info_accum_checksum = confirmed_info.get_accum_checksum();
int64_t confirmed_info_epoch_id = confirmed_info.get_epoch_id();
int64_t confirmed_info_submit_timestamp = confirmed_info.get_submit_timestamp();
if (log_id != cur_renew_log_id
|| ms_proposal_id != cur_ms_proposal_id
|| ms_proposal_id != log_task.get_proposal_id()) {
ret = OB_STATE_NOT_MATCH;
CLOG_LOG(WARN,
"log_id or ms_proposal_id not match with cur_renew_ms_task",
@ -602,7 +608,7 @@ int ObLogMembershipTaskMgr::submit_confirmed_info_(const uint64_t log_id, const
K(log_task));
} else {
if (log_task.is_on_success_cb_called()) {
if (!log_task.is_checksum_verified(confirmed_info.get_data_checksum())) {
if (!log_task.is_checksum_verified(confirmed_info_data_checksum)) {
ret = OB_ERR_UNEXPECTED;
CLOG_LOG(ERROR,
"is_checksum_verified failed",
@ -619,14 +625,12 @@ int ObLogMembershipTaskMgr::submit_confirmed_info_(const uint64_t log_id, const
if (log_task.is_confirmed_info_exist()) {
} else {
if (log_task.is_submit_log_exist()) {
if ((log_task.get_data_checksum() != confirmed_info.get_data_checksum()) ||
(log_task.get_epoch_id() != confirmed_info.get_epoch_id())) {
CLOG_LOG(INFO,
"log_task and confirmed_info not match, reset",
K_(partition_key),
K(log_id),
K(log_task),
K(confirmed_info));
if ((log_task.get_data_checksum() != confirmed_info_data_checksum)
|| (log_task.get_epoch_id() != confirmed_info_epoch_id)
|| (OB_INVALID_TIMESTAMP != confirmed_info_submit_timestamp
&& log_task.get_submit_timestamp() != confirmed_info_submit_timestamp)) {
CLOG_LOG(INFO, "log_task and confirmed_info not match, reset", K_(partition_key),
K(log_id), K(log_task), K(confirmed_info));
log_task.reset_log();
log_task.reset_state(false);
log_task.reset_log_cursor();
@ -954,8 +958,9 @@ int ObLogMembershipTaskMgr::standby_leader_submit_confirmed_info_(
log_task.lock();
const int64_t data_checksum = log_task.get_data_checksum();
const int64_t epoch_id = log_task.get_epoch_id();
const int64_t submit_timestamp = log_task.get_submit_timestamp();
log_task.unlock();
if (OB_FAIL(confirmed_info.init(data_checksum, epoch_id, accum_checksum))) {
if (OB_FAIL(confirmed_info.init(data_checksum, epoch_id, accum_checksum, submit_timestamp))) {
CLOG_LOG(ERROR, "confirmed_info init failed", K_(partition_key), K(ret));
} else if (OB_FAIL(submit_confirmed_info_(log_id, ms_proposal_id, confirmed_info, true))) {
CLOG_LOG(WARN, "submit_confirmed_info_ failed", K_(partition_key), K(ret), K(log_id), K(confirmed_info));