[Election] fix arb server compare priority bug

This commit is contained in:
fengdeyiji
2023-06-05 08:50:59 +00:00
committed by ob-robot
parent 61b129e849
commit a795853f8e
13 changed files with 334 additions and 50 deletions

View File

@ -354,6 +354,7 @@ void ElectionProposer::prepare(const ObRole role)
p_election_->get_self_addr(),
restart_counter_,
ballot_number_,
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
p_election_->inner_priority_seed_,
p_election_->get_membership_version_());
(void) p_election_->refresh_priority_();
@ -383,6 +384,7 @@ void ElectionProposer::on_prepare_request(const ElectionPrepareRequestMsg &prepa
if (prepare_req.get_ballot_number() <= ballot_number_) {
if (prepare_req.get_ballot_number() < ballot_number_) {// 对于旧消息发送拒绝响应
ElectionPrepareResponseMsg prepare_res_reject(p_election_->get_self_addr(),
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
prepare_req);
prepare_res_reject.set_rejected(ballot_number_);
if (CLICK_FAIL(p_election_->send_(prepare_res_reject))) {
@ -414,6 +416,7 @@ void ElectionProposer::on_prepare_request(const ElectionPrepareRequestMsg &prepa
p_election_->get_self_addr(),
restart_counter_,
ballot_number_,
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
p_election_->inner_priority_seed_,
p_election_->get_membership_version_());
if (CLICK_FAIL(prepare_followed_req.set(p_election_->get_priority_(),
@ -490,6 +493,7 @@ void ElectionProposer::propose()
p_election_->get_self_addr(),
restart_counter_,
prepare_success_ballot_,
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
current_ts,
new_lease_interval,
memberlist_with_states_.get_member_list()
@ -561,10 +565,12 @@ void ElectionProposer::on_accept_response(const ElectionAcceptResponseMsg &accep
ElectionAcceptResponseMsg mock_self_accept_response_msg(p_election_->self_addr_,
p_election_->inner_priority_seed_,
p_election_->get_membership_version_(),
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
ElectionAcceptRequestMsg(p_election_->id_,
p_election_->self_addr_,
restart_counter_,
ballot_number_,
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
0,
record_lease_interval_,
p_election_->get_membership_version_()));
@ -635,6 +641,7 @@ void ElectionProposer::inner_change_leader_to(const ObAddr &dst)
p_election_->get_self_addr(),
restart_counter_,
ballot_number_,
p_election_->get_ls_biggest_min_cluster_version_ever_seen_(),
switch_source_leader_ballot,
p_election_->get_membership_version_());
if (OB_LIKELY(leader_revoke_if_lease_expired_(RoleChangeReason::ChangeLeaderToRevoke))) {