From 906b97931abf3c53238eb0294de9c5f27fc08bde Mon Sep 17 00:00:00 2001 From: Joseph Anttila Hall Date: Tue, 1 Nov 2022 21:55:42 -0700 Subject: [PATCH] egress_selector: prevent goroutines leak on connect() step. --- .../apiserver/pkg/server/egressselector/egress_selector.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/staging/src/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go b/staging/src/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go index 683b774febe..661c5ad9a73 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go +++ b/staging/src/k8s.io/apiserver/pkg/server/egressselector/egress_selector.go @@ -217,6 +217,9 @@ func (u *udsGRPCConnector) connect(_ context.Context) (proxier, error) { // See https://github.com/kubernetes-sigs/apiserver-network-proxy/issues/357. tunnelCtx := context.TODO() tunnel, err := client.CreateSingleUseGrpcTunnel(tunnelCtx, udsName, dialOption, + grpc.WithBlock(), + grpc.WithReturnConnectionError(), + grpc.WithTimeout(30*time.Second), // matches http.DefaultTransport dial timeout grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { return nil, err