GitHub user lvfangmin opened a pull request:
https://github.com/apache/zookeeper/pull/703
[ZOOKEEPER-1818] Correctly handle potential inconsistent zxid/electionEpoch
and peerEpoch during leader election
This is similar to the 3.4 implementation in Jira ZOOKEEPER-1817, main
differences with that:
1. removed bcVote, in Vote.equals it will skip compare peerEpoch when one
of the version is 0x0.
2. added detailed scenarios which we tried to solve with peerEpoch update
and the change in Vote.equals.
3. removed ooePredicate with inlined one, since master code is tracking
voteSet..
4. improved the tests to make it cleaner.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/lvfangmin/zookeeper ZOOKEEPER-1818
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/zookeeper/pull/703.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #703
----
commit ccccac2aa6147e5433567a4be433089c35a30a3d
Author: Fangmin Lyu <fangmin@...>
Date: 2018-11-15T17:46:51Z
Correctly handle potential inconsitent zxid/electionEpoch and peerEpoch
during leader election
----
---