diff --git a/etcdserver/config.go b/etcdserver/config.go index 9b854e682..a9ef6d288 100644 --- a/etcdserver/config.go +++ b/etcdserver/config.go @@ -180,7 +180,7 @@ func (c *ServerConfig) advertiseMatchesCluster() error { sort.Strings(apurls) ctx, cancel := context.WithTimeout(context.TODO(), 30*time.Second) defer cancel() - ok, err := netutil.URLStringsEqual(ctx, apurls, urls.StringSlice()) + ok, err := netutil.URLStringsEqual(ctx, c.Logger, apurls, urls.StringSlice()) if ok { return nil } diff --git a/etcdserver/membership/cluster.go b/etcdserver/membership/cluster.go index 7dd23430d..978d2a545 100644 --- a/etcdserver/membership/cluster.go +++ b/etcdserver/membership/cluster.go @@ -649,7 +649,7 @@ func clusterVersionFromStore(lg *zap.Logger, st v2store.Store) *semver.Version { // with the existing cluster. If the validation succeeds, it assigns the IDs // from the existing cluster to the local cluster. // If the validation fails, an error will be returned. -func ValidateClusterAndAssignIDs(local *RaftCluster, existing *RaftCluster) error { +func ValidateClusterAndAssignIDs(lg *zap.Logger, local *RaftCluster, existing *RaftCluster) error { ems := existing.Members() lms := local.Members() if len(ems) != len(lms) { @@ -661,7 +661,7 @@ func ValidateClusterAndAssignIDs(local *RaftCluster, existing *RaftCluster) erro ctx, cancel := context.WithTimeout(context.TODO(), 30*time.Second) defer cancel() for i := range ems { - if ok, err := netutil.URLStringsEqual(ctx, ems[i].PeerURLs, lms[i].PeerURLs); !ok { + if ok, err := netutil.URLStringsEqual(ctx, lg, ems[i].PeerURLs, lms[i].PeerURLs); !ok { return fmt.Errorf("unmatched member while checking PeerURLs (%v)", err) } lms[i].ID = ems[i].ID diff --git a/etcdserver/membership/cluster_test.go b/etcdserver/membership/cluster_test.go index d3a1e733a..e5c2333c9 100644 --- a/etcdserver/membership/cluster_test.go +++ b/etcdserver/membership/cluster_test.go @@ -239,7 +239,7 @@ func TestClusterValidateAndAssignIDsBad(t *testing.T) { for i, tt := range tests { ecl := newTestCluster(tt.clmembs) lcl := newTestCluster(tt.membs) - if err := ValidateClusterAndAssignIDs(lcl, ecl); err == nil { + if err := ValidateClusterAndAssignIDs(zap.NewExample(), lcl, ecl); err == nil { t.Errorf("#%d: unexpected update success", i) } } @@ -266,7 +266,7 @@ func TestClusterValidateAndAssignIDs(t *testing.T) { for i, tt := range tests { lcl := newTestCluster(tt.clmembs) ecl := newTestCluster(tt.membs) - if err := ValidateClusterAndAssignIDs(lcl, ecl); err != nil { + if err := ValidateClusterAndAssignIDs(zap.NewExample(), lcl, ecl); err != nil { t.Errorf("#%d: unexpect update error: %v", i, err) } if !reflect.DeepEqual(lcl.MemberIDs(), tt.wids) { diff --git a/etcdserver/server.go b/etcdserver/server.go index 8270faca5..8ad0ce5b0 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -340,7 +340,7 @@ func NewServer(cfg ServerConfig) (srv *EtcdServer, err error) { if gerr != nil { return nil, fmt.Errorf("cannot fetch cluster info from peer urls: %v", gerr) } - if err = membership.ValidateClusterAndAssignIDs(cl, existingCluster); err != nil { + if err = membership.ValidateClusterAndAssignIDs(cfg.Logger, cl, existingCluster); err != nil { return nil, fmt.Errorf("error validating peerURLs %s: %v", existingCluster, err) } if !isCompatibleWithCluster(cfg.Logger, cl, cl.MemberByName(cfg.Name).ID, prt) {