mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #799 from xiangli-cmu/deny_unknow_peer
hack(server): notify removed peers when they try to become candidates
This commit is contained in:
@@ -122,6 +122,8 @@ func (s *PeerServer) SetRaftServer(raftServer raft.Server, snapshot bool) {
|
||||
|
||||
raftServer.AddEventListener(raft.HeartbeatEventType, s.recordMetricEvent)
|
||||
|
||||
raftServer.AddEventListener(raft.RemovedEventType, s.removedEvent)
|
||||
|
||||
s.raftServer = raftServer
|
||||
s.removedInLog = false
|
||||
|
||||
@@ -652,6 +654,14 @@ func (s *PeerServer) PeerStats() []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
// removedEvent handles the case where a machine has been removed from the
|
||||
// cluster and is notified when it tries to become a candidate.
|
||||
func (s *PeerServer) removedEvent(event raft.Event) {
|
||||
// HACK(philips): we need to find a better notification for this.
|
||||
log.Infof("removed during cluster re-configuration")
|
||||
s.asyncRemove()
|
||||
}
|
||||
|
||||
// raftEventLogger converts events from the Raft server into log messages.
|
||||
func (s *PeerServer) raftEventLogger(event raft.Event) {
|
||||
value := event.Value()
|
||||
|
||||
Reference in New Issue
Block a user