|
|
|
@ -638,13 +638,6 @@ func (s *Server) joinConsulServer(m serf.Member, parts *metadata.Server) error {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addr := (&net.TCPAddr{IP: m.Addr, Port: parts.Port}).String()
|
|
|
|
|
|
|
|
|
|
minRaftProtocol, err := ServerMinRaftProtocol(s.serfLAN.Members())
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Processing ourselves could result in trying to remove ourselves to
|
|
|
|
|
// fix up our address, which would make us step down. This is only
|
|
|
|
|
// safe to attempt if there are multiple servers available.
|
|
|
|
@ -664,6 +657,11 @@ func (s *Server) joinConsulServer(m serf.Member, parts *metadata.Server) error {
|
|
|
|
|
// but we want to avoid doing that if possible to prevent useless Raft
|
|
|
|
|
// log entries. If the address is the same but the ID changed, remove the
|
|
|
|
|
// old server before adding the new one.
|
|
|
|
|
addr := (&net.TCPAddr{IP: m.Addr, Port: parts.Port}).String()
|
|
|
|
|
minRaftProtocol, err := ServerMinRaftProtocol(s.serfLAN.Members())
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
for _, server := range configFuture.Configuration().Servers {
|
|
|
|
|
// No-op if the raft version is too low
|
|
|
|
|
if server.Address == raft.ServerAddress(addr) && (minRaftProtocol < 2 || parts.RaftVersion < 3) {
|
|
|
|
|