diff --git a/flow/client/client.go b/flow/client/client.go index 36f362f09..be142a2e9 100644 --- a/flow/client/client.go +++ b/flow/client/client.go @@ -154,21 +154,20 @@ func (c *GRPCClient) recreateConnection() error { return backoff.Permanent(ErrClientClosed) } - defer func(conn *grpc.ClientConn) { - _ = conn.Close() - }(c.clientConn) - conn, err := grpc.NewClient(c.clientConn.Target(), c.opts...) if err != nil { c.mu.Unlock() return fmt.Errorf("create new connection: %w", err) } + old := c.clientConn c.clientConn = conn c.realClient = proto.NewFlowServiceClient(conn) c.stream = nil c.mu.Unlock() + _ = old.Close() + return nil }