mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
integration: always return active client
In the integration test, we sometimes stop/restart an etcd server. Now our client has internal connection monitoring logic that might set conn to nil when there is a connection failure and the redial also fails. Chaning randClient to always return a client with active connection to make integration test reliable.
This commit is contained in:
parent
8b28c647ea
commit
bbfe7f401f
@ -795,7 +795,15 @@ func (c *ClusterV3) Terminate(t *testing.T) {
|
||||
}
|
||||
|
||||
func (c *ClusterV3) RandClient() *clientv3.Client {
|
||||
return c.clients[rand.Intn(len(c.clients))]
|
||||
for i := 0; i < 100; i++ {
|
||||
cli := c.clients[rand.Intn(len(c.clients))]
|
||||
if cli.ActiveConnection() == nil {
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
continue
|
||||
}
|
||||
return cli
|
||||
}
|
||||
panic("failed to get a active client")
|
||||
}
|
||||
|
||||
func (c *ClusterV3) Client(i int) *clientv3.Client {
|
||||
|
Loading…
x
Reference in New Issue
Block a user