From 6198c604ea8421c3bfe27e3fb6b330e6d98f7fb2 Mon Sep 17 00:00:00 2001 From: Michael Schurter Date: Fri, 7 Feb 2020 15:37:17 -0800 Subject: [PATCH] testagent: fix case where agent would retry forever --- command/agent/testagent.go | 46 +++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/command/agent/testagent.go b/command/agent/testagent.go index 71d40e9e2..e545f0c8b 100644 --- a/command/agent/testagent.go +++ b/command/agent/testagent.go @@ -123,31 +123,30 @@ func (a *TestAgent) Start() *TestAgent { i := 10 RETRY: - for ; i >= 0; i-- { - a.pickRandomPorts(a.Config) - if a.Config.NodeName == "" { - a.Config.NodeName = fmt.Sprintf("Node %d", a.Config.Ports.RPC) - } + i-- + a.pickRandomPorts(a.Config) + if a.Config.NodeName == "" { + a.Config.NodeName = fmt.Sprintf("Node %d", a.Config.Ports.RPC) + } - // write the keyring - if a.Key != "" { - writeKey := func(key, filename string) { - path := filepath.Join(a.Config.DataDir, filename) - if err := initKeyring(path, key); err != nil { - a.T.Fatalf("Error creating keyring %s: %s", path, err) - } + // write the keyring + if a.Key != "" { + writeKey := func(key, filename string) { + path := filepath.Join(a.Config.DataDir, filename) + if err := initKeyring(path, key); err != nil { + a.T.Fatalf("Error creating keyring %s: %s", path, err) } - writeKey(a.Key, serfKeyring) } + writeKey(a.Key, serfKeyring) + } - // we need the err var in the next exit condition - agent, err := a.start() - if err == nil { - a.Agent = agent - break - } else if i == 0 { - a.T.Fatalf("%s: Error starting agent: %v", a.Name, err) - } + // we need the err var in the next exit condition + agent, err := a.start() + if err == nil { + a.Agent = agent + } else if i == 0 { + a.T.Fatalf("%s: Error starting agent: %v", a.Name, err) + } else { if agent != nil { agent.Shutdown() @@ -164,6 +163,8 @@ RETRY: a.T.Fatalf("%s: Error resetting data dir: %v", a.Name, err) } } + + goto RETRY } failed := false @@ -190,6 +191,9 @@ RETRY: } if failed { a.Agent.Shutdown() + if i == 0 { + a.T.Fatalf("ran out of retries trying to start test agent") + } goto RETRY }