diff --git a/agent/consul/server.go b/agent/consul/server.go index c7d6d19c0e7..418db2da1ff 100644 --- a/agent/consul/server.go +++ b/agent/consul/server.go @@ -1679,12 +1679,18 @@ func (s *Server) IsLeader() bool { // IsServer checks if this addr is of a server func (s *Server) IsServer(addr string) bool { - for _, s := range s.raft.GetConfiguration().Configuration().Servers { - a, err := net.ResolveTCPAddr("tcp", string(s.Address)) + + for _, ss := range s.raft.GetConfiguration().Configuration().Servers { + a, err := net.ResolveTCPAddr("tcp", string(ss.Address)) + if err != nil { + continue + } + localIP, err := net.ResolveTCPAddr("tcp", string(s.config.RaftConfig.LocalID)) if err != nil { continue } - if string(metadata.GetIP(a)) == addr { + // only return true if it's another server and not our local address + if string(metadata.GetIP(a)) == addr && string(metadata.GetIP(localIP)) != addr { return true } }