diff --git a/go.mod b/go.mod index f524c2c98..04bb11033 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/google/go-cmp v0.6.0 github.com/google/gofuzz v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect - github.com/kubernetes-csi/csi-lib-utils v0.18.0 + github.com/kubernetes-csi/csi-lib-utils v0.18.1 golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/term v0.20.0 // indirect google.golang.org/grpc v1.63.2 diff --git a/go.sum b/go.sum index 5ecac6b3e..d054f8012 100644 --- a/go.sum +++ b/go.sum @@ -61,8 +61,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubernetes-csi/csi-lib-utils v0.18.0 h1:Tpt1qLIbmpz5ux1hllut/dEWww2VRxdvSSOF4gGwhnA= -github.com/kubernetes-csi/csi-lib-utils v0.18.0/go.mod h1:FEQIcHcZmXZKWKTg18dJbXCHvgtCjnH7/uM0trmZyhU= +github.com/kubernetes-csi/csi-lib-utils v0.18.1 h1:vpg1kbQ6lFVCz7mY71zcqVE7W0GAQXXBoFfHvbW3gdw= +github.com/kubernetes-csi/csi-lib-utils v0.18.1/go.mod h1:PIcn27zmbY0KBue4JDdZVfDF56tjcS3jKroZPi+pMoY= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/rpc/common.go b/vendor/github.com/kubernetes-csi/csi-lib-utils/rpc/common.go index c794267c6..f83a7f15c 100644 --- a/vendor/github.com/kubernetes-csi/csi-lib-utils/rpc/common.go +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/rpc/common.go @@ -136,32 +136,35 @@ func GetGroupControllerCapabilities(ctx context.Context, conn *grpc.ClientConn) func ProbeForever(ctx context.Context, conn *grpc.ClientConn, singleProbeTimeout time.Duration) error { logger := klog.FromContext(ctx) ticker := time.NewTicker(probeInterval) + defer ticker.Stop() for { + // Run the probe once before waiting for the ticker + logger.Info("Probing CSI driver for readiness") + ready, err := probeOnce(ctx, conn, singleProbeTimeout) + if err != nil { + st, ok := status.FromError(err) + if !ok { + // This is not gRPC error. The probe must have failed before gRPC + // method was called, otherwise we would get gRPC error. + return fmt.Errorf("CSI driver probe failed: %s", err) + } + if st.Code() != codes.DeadlineExceeded { + return fmt.Errorf("CSI driver probe failed: %s", err) + } + // Timeout -> driver is not ready. Fall through to sleep() below. + logger.Info("CSI driver probe timed out") + } else { + if ready { + return nil + } + logger.Info("CSI driver is not ready") + } select { case <-ctx.Done(): return ctx.Err() case <-ticker.C: - logger.Info("Probing CSI driver for readiness") - ready, err := probeOnce(ctx, conn, singleProbeTimeout) - if err != nil { - st, ok := status.FromError(err) - if !ok { - // This is not gRPC error. The probe must have failed before gRPC - // method was called, otherwise we would get gRPC error. - return fmt.Errorf("CSI driver probe failed: %s", err) - } - if st.Code() != codes.DeadlineExceeded { - return fmt.Errorf("CSI driver probe failed: %s", err) - } - // Timeout -> driver is not ready. Fall through to sleep() below. - logger.Info("CSI driver probe timed out") - } else { - if ready { - return nil - } - logger.Info("CSI driver is not ready") - } + continue } } } diff --git a/vendor/modules.txt b/vendor/modules.txt index d73f89b82..0700c2628 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -91,7 +91,7 @@ github.com/josharian/intern # github.com/json-iterator/go v1.1.12 ## explicit; go 1.12 github.com/json-iterator/go -# github.com/kubernetes-csi/csi-lib-utils v0.18.0 +# github.com/kubernetes-csi/csi-lib-utils v0.18.1 ## explicit; go 1.22.0 github.com/kubernetes-csi/csi-lib-utils/accessmodes github.com/kubernetes-csi/csi-lib-utils/connection