|
|
@@ -375,25 +375,33 @@ func TestClientRefreshBehaviour(t *testing.T) {
|
|
|
}
|
|
|
|
|
|
func TestClientResurrectDeadSeeds(t *testing.T) {
|
|
|
- seed1 := newMockBroker(t, 1)
|
|
|
- seed2 := newMockBroker(t, 2)
|
|
|
- seed3 := newMockBroker(t, 3)
|
|
|
- addr1 := seed1.Addr()
|
|
|
- addr2 := seed2.Addr()
|
|
|
- addr3 := seed3.Addr()
|
|
|
-
|
|
|
+ initialSeed := newMockBroker(t, 0)
|
|
|
emptyMetadata := new(MetadataResponse)
|
|
|
- seed1.Returns(emptyMetadata)
|
|
|
+ initialSeed.Returns(emptyMetadata)
|
|
|
|
|
|
conf := NewConfig()
|
|
|
conf.Metadata.Retry.Backoff = 0
|
|
|
conf.Metadata.RefreshFrequency = 0
|
|
|
- c, err := NewClient([]string{addr1, addr2, addr3}, conf)
|
|
|
+ c, err := NewClient([]string{initialSeed.Addr()}, conf)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
+ initialSeed.Close()
|
|
|
+
|
|
|
client := c.(*client)
|
|
|
|
|
|
+ seed1 := newMockBroker(t, 1)
|
|
|
+ seed2 := newMockBroker(t, 2)
|
|
|
+ seed3 := newMockBroker(t, 3)
|
|
|
+ addr1 := seed1.Addr()
|
|
|
+ addr2 := seed2.Addr()
|
|
|
+ addr3 := seed3.Addr()
|
|
|
+
|
|
|
+ // Overwrite the seed brokers with a fixed ordering to make this test deterministic.
|
|
|
+ safeClose(t, client.seedBrokers[0])
|
|
|
+ client.seedBrokers = []*Broker{NewBroker(addr1), NewBroker(addr2), NewBroker(addr3)}
|
|
|
+ client.deadSeeds = []*Broker{}
|
|
|
+
|
|
|
wg := sync.WaitGroup{}
|
|
|
wg.Add(1)
|
|
|
go func() {
|