|
@@ -80,13 +80,13 @@ func (client *Client) Close() error {
|
|
|
defer client.lock.Unlock()
|
|
defer client.lock.Unlock()
|
|
|
|
|
|
|
|
for _, broker := range client.brokers {
|
|
for _, broker := range client.brokers {
|
|
|
- go broker.Close()
|
|
|
|
|
|
|
+ go withRecover(func() { broker.Close() })
|
|
|
}
|
|
}
|
|
|
client.brokers = nil
|
|
client.brokers = nil
|
|
|
client.leaders = nil
|
|
client.leaders = nil
|
|
|
|
|
|
|
|
if client.extraBroker != nil {
|
|
if client.extraBroker != nil {
|
|
|
- go client.extraBroker.Close()
|
|
|
|
|
|
|
+ go withRecover(func() { client.extraBroker.Close() })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
return nil
|
|
@@ -180,7 +180,7 @@ func (client *Client) disconnectBroker(broker *Broker) {
|
|
|
delete(client.brokers, broker.ID())
|
|
delete(client.brokers, broker.ID())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- go broker.Close()
|
|
|
|
|
|
|
+ go withRecover(func() { broker.Close() })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (client *Client) refreshMetadata(topics []string, retries int) error {
|
|
func (client *Client) refreshMetadata(topics []string, retries int) error {
|
|
@@ -286,7 +286,7 @@ func (client *Client) update(data *MetadataResponse) ([]string, error) {
|
|
|
client.brokers[broker.ID()] = broker
|
|
client.brokers[broker.ID()] = broker
|
|
|
Logger.Printf("Registered new broker #%d at %s", broker.ID(), broker.Addr())
|
|
Logger.Printf("Registered new broker #%d at %s", broker.ID(), broker.Addr())
|
|
|
} else if broker.Addr() != client.brokers[broker.ID()].Addr() {
|
|
} else if broker.Addr() != client.brokers[broker.ID()].Addr() {
|
|
|
- go client.brokers[broker.ID()].Close()
|
|
|
|
|
|
|
+ go withRecover(func() { client.brokers[broker.ID()].Close() })
|
|
|
broker.Open(client.config.ConcurrencyPerBroker)
|
|
broker.Open(client.config.ConcurrencyPerBroker)
|
|
|
client.brokers[broker.ID()] = broker
|
|
client.brokers[broker.ID()] = broker
|
|
|
Logger.Printf("Replaced registered broker #%d with %s", broker.ID(), broker.Addr())
|
|
Logger.Printf("Replaced registered broker #%d with %s", broker.ID(), broker.Addr())
|