avoid repeated grpc connection creation

fix https://github.com/chrislusf/seaweedfs/issues/1277
This commit is contained in:
Chris Lu
2020-04-22 18:26:24 -07:00
parent 5d0e1d8d74
commit aebe39a803
2 changed files with 10 additions and 4 deletions

View File

@@ -86,13 +86,15 @@ func WithCachedGrpcClient(fn func(*grpc.ClientConn) error, address string, opts
err := fn(existingConnection)
if err != nil {
grpcClientsLock.Lock()
delete(grpcClients, address)
// delete(grpcClients, address)
grpcClientsLock.Unlock()
existingConnection.Close()
// println("closing existing connection to", existingConnection.Target())
// existingConnection.Close()
}
return err
}
println(" dialing to", address, "...")
grpcConnection, err := GrpcDial(context.Background(), address, opts...)
if err != nil {
grpcClientsLock.Unlock()
@@ -105,9 +107,10 @@ func WithCachedGrpcClient(fn func(*grpc.ClientConn) error, address string, opts
err = fn(grpcConnection)
if err != nil {
grpcClientsLock.Lock()
delete(grpcClients, address)
// delete(grpcClients, address)
grpcClientsLock.Unlock()
grpcConnection.Close()
// println("closing created new connection to", grpcConnection.Target())
// grpcConnection.Close()
}
return err