1
0
Fork 0

Fix bugs in Goroutine logic

Testing never fails to produce results.
master
Philip O'Toole 3 years ago
parent 7218a40ed1
commit 4cff27f91f

@ -925,15 +925,15 @@ func (s *Service) checkNodesAPIAddr(nodes []*store.Server, timeout time.Duration
// Now confirm.
for _, n := range nodes {
wg.Add(1)
go func() {
go func(id, raftAddr string) {
defer wg.Done()
addr, err := s.cluster.GetNodeAPIAddr(n.Addr)
apiAddr, err := s.cluster.GetNodeAPIAddr(raftAddr)
if err == nil {
mu.Lock()
apiAddrs[n.ID] = addr
apiAddrs[id] = apiAddr
mu.Unlock()
}
}()
}(n.ID, n.Addr)
}
wg.Wait()

@ -201,7 +201,6 @@ func Test_MultiNodeClusterNodes(t *testing.T) {
if err != nil {
t.Fatalf("failed to get nodes status: %s", err.Error())
}
fmt.Println(nodes)
if len(nodes) != len(c) {
t.Fatalf("nodes/ output returned wrong number of nodes, got %d, exp %d", len(nodes), len(c))
}
@ -233,7 +232,7 @@ func Test_MultiNodeClusterNodes(t *testing.T) {
}
f := followers[0]
ns = nodes[f.ID]
if ns.Addr != leader.RaftAddr {
if ns.Addr != f.RaftAddr {
t.Fatalf("node has wrong Raft address for follower")
}
if ns.APIAddr != fmt.Sprintf("http://%s", f.APIAddr) {

@ -449,6 +449,7 @@ func mustNewNodeEncrypted(enableSingle, httpEncrypt, nodeEncrypt bool) *Node {
} else {
mux = mustNewOpenMux("")
}
go mux.Serve()
return mustNodeEncrypted(dir, enableSingle, httpEncrypt, mux, "")
}

Loading…
Cancel
Save