fix some closing issues
This commit is contained in:
@ -271,22 +271,23 @@ func (b *balancer) Start(target string, config grpc.BalancerConfig) error {
|
|||||||
var err error
|
var err error
|
||||||
creds := config.DialCreds
|
creds := config.DialCreds
|
||||||
if creds == nil {
|
if creds == nil {
|
||||||
cc, err = grpc.Dial(rb.addr.Addr, grpc.WithBlock(), grpc.WithInsecure())
|
cc, err = grpc.Dial(rb.addr.Addr, grpc.WithInsecure())
|
||||||
} else {
|
} else {
|
||||||
cc, err = grpc.Dial(rb.addr.Addr, grpc.WithBlock(), grpc.WithTransportCredentials(creds))
|
cc, err = grpc.Dial(rb.addr.Addr, grpc.WithTransportCredentials(creds))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
grpclog.Printf("Failed to setup a connection to the remote balancer %v: %v", rb.addr, err)
|
grpclog.Printf("Failed to setup a connection to the remote balancer %v: %v", rb.addr, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
go func(cc *grpc.ClientConn) {
|
||||||
lbc := lbpb.NewLoadBalancerClient(cc)
|
lbc := lbpb.NewLoadBalancerClient(cc)
|
||||||
go func() {
|
|
||||||
for {
|
for {
|
||||||
if retry := b.callRemoteBalancer(lbc); !retry {
|
if retry := b.callRemoteBalancer(lbc); !retry {
|
||||||
|
cc.Close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}(cc)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
|
Reference in New Issue
Block a user