Fix deadlock in 10-node cluster convergence #2467
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #2286 .
bootstrap, it would cause a leader to step down when the size of the cluster
is 2, then causing all the rest of the joins to be blocked indefinitely. It
would also cause leader step down in a seemingly healthy cluster which is
processing proposals. CheckQuorum was mandated by raft.ReadOnlyLeaseBased,
which is a less safe option to do linearizable reads. Switch ReadOnlyOption
back to raft.ReadOnlySafe. Moreover, we don't need to do quorum based lin
reads in the Alpha servers, because of the switch to proposing and then
applying transaction updates.
Zero (and removed it from Alpha permanently). Needs to be fixed when the
following issue is resolved. ReadIndex doesn't provide ReadStates etcd-io/etcd#9893
into one place in conn/node.go.
one introduced for normal proposals in a previous commit 06ea4c.
until node.AddToCluster is successful (or return the error).
This change is