Skip to content

Commit 8fa216a

Browse files
committed
Fix IPv6 address handling in LAN <-> WAN join flooder
When `advertise_addr` is an IPv6 address, Consul WAN federation breaks and we get a constant stream of warnings: ``` [WARN] agent.server.memberlist.wan: memberlist: Failed to resolve i-02a3c94b46768b01f.aws-eu-west-1/2a05:d018:18a3:f202:64d9:1621:ab22:df45:8302: lookup 2a05:d018:18a3:f202:64d9:1621:ab22:df45:8302: no such host ``` The LAN <-> WAN join flooder creates IPv6 addresses without square brackets with `fmt.Sprintf("%s:%d", addr, s.WanJoinPort)`, which confuses `net.SplitHostPort` in `memberlist.resolveAddr`. Fixes hashicorp#22225
1 parent 7665dd3 commit 8fa216a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

agent/consul/server.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,7 @@ func NewServer(config *Config, flat Deps, externalGRPCServer *grpc.Server,
781781
if err != nil {
782782
return "", err
783783
}
784-
return fmt.Sprintf("%s:%d", addr, s.WanJoinPort), nil
784+
return net.JoinHostPort(addr, strconv.Itoa(s.WanJoinPort)), nil
785785
}
786786
go s.Flood(addrFn, s.serfWAN)
787787
}

0 commit comments

Comments
 (0)