|
@@ -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
|