startStopReplication: Handle Existing Peer Update #419
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.
Currently, when
Raft#startStopReplication
is executed from a config change update, it handles two cases: adding a new peer or removing an existing peer. However, if a configuration change resulted in a peer change (e.g. server address changed),Raft#startStopReplication
won't catch this and heartbeats will be sent to the old address.e.g.
AddStaging
is handled byRaft#appendConfigurationEntry
Raft#startStopReplication
is called, but Raft keeps A with the old server addressI'm not sure if we need to cleanup any routines or replication, so I just have the
followerReplication.server
field updated for now.