From 26a3e9a74016c7436dbe9edc18f264d4ad36af27 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Wed, 14 Dec 2016 14:22:37 -0800 Subject: [PATCH] membership: retry for 30s on advertise url check --- etcdserver/membership/cluster.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/etcdserver/membership/cluster.go b/etcdserver/membership/cluster.go index 4e757725d..25c45dfce 100644 --- a/etcdserver/membership/cluster.go +++ b/etcdserver/membership/cluster.go @@ -24,6 +24,9 @@ import ( "sort" "strings" "sync" + "time" + + "golang.org/x/net/context" "github.com/coreos/etcd/mvcc/backend" "github.com/coreos/etcd/pkg/netutil" @@ -484,8 +487,10 @@ func ValidateClusterAndAssignIDs(local *RaftCluster, existing *RaftCluster) erro sort.Sort(MembersByPeerURLs(ems)) sort.Sort(MembersByPeerURLs(lms)) + ctx, cancel := context.WithTimeout(context.TODO(), 30*time.Second) + defer cancel() for i := range ems { - if !netutil.URLStringsEqual(ems[i].PeerURLs, lms[i].PeerURLs) { + if !netutil.URLStringsEqual(ctx, ems[i].PeerURLs, lms[i].PeerURLs) { return fmt.Errorf("unmatched member while checking PeerURLs") } lms[i].ID = ems[i].ID