diff --git a/pool/tree/pool.go b/pool/tree/pool.go index fc360d2b..55407aa4 100644 --- a/pool/tree/pool.go +++ b/pool/tree/pool.go @@ -198,7 +198,11 @@ func (p *Pool) Dial(ctx context.Context) error { clients := make([]client, len(nodes)) for j, node := range nodes { clients[j] = newTreeClient(node.Address(), p.dialOptions...) - if err := clients[j].dial(ctx); err != nil { + + tctx, cancel := context.WithTimeout(ctx, p.rebalanceParams.nodeRequestTimeout) + err := clients[j].dial(tctx) + cancel() + if err != nil { p.log(zap.WarnLevel, "failed to dial tree client", zap.String("address", node.Address()), zap.Error(err)) continue }