Browse Source

membership: retry for 30s on advertise url check

Anthony Romano 9 years ago
parent
commit
26a3e9a740
1 changed files with 6 additions and 1 deletions
  1. 6 1
      etcdserver/membership/cluster.go

+ 6 - 1
etcdserver/membership/cluster.go

@@ -24,6 +24,9 @@ import (
 	"sort"
 	"sort"
 	"strings"
 	"strings"
 	"sync"
 	"sync"
+	"time"
+
+	"golang.org/x/net/context"
 
 
 	"github.com/coreos/etcd/mvcc/backend"
 	"github.com/coreos/etcd/mvcc/backend"
 	"github.com/coreos/etcd/pkg/netutil"
 	"github.com/coreos/etcd/pkg/netutil"
@@ -484,8 +487,10 @@ func ValidateClusterAndAssignIDs(local *RaftCluster, existing *RaftCluster) erro
 	sort.Sort(MembersByPeerURLs(ems))
 	sort.Sort(MembersByPeerURLs(ems))
 	sort.Sort(MembersByPeerURLs(lms))
 	sort.Sort(MembersByPeerURLs(lms))
 
 
+	ctx, cancel := context.WithTimeout(context.TODO(), 30*time.Second)
+	defer cancel()
 	for i := range ems {
 	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")
 			return fmt.Errorf("unmatched member while checking PeerURLs")
 		}
 		}
 		lms[i].ID = ems[i].ID
 		lms[i].ID = ems[i].ID