From f48e5de96327244b6fe19a4fe197973ac2ef9542 Mon Sep 17 00:00:00 2001 From: Ted Yu Date: Fri, 7 Feb 2020 06:39:12 -0800 Subject: [PATCH] Remove the exponential backoff in NodeGetInfo --- pkg/volume/csi/csi_client.go | 23 ++++++----------------- pkg/volume/csi/csi_client_test.go | 17 +---------------- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/pkg/volume/csi/csi_client.go b/pkg/volume/csi/csi_client.go index 4fb34ff0743..c1d548c9f53 100644 --- a/pkg/volume/csi/csi_client.go +++ b/pkg/volume/csi/csi_client.go @@ -31,7 +31,6 @@ import ( "google.golang.org/grpc/status" api "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog" "k8s.io/kubernetes/pkg/volume" volumetypes "k8s.io/kubernetes/pkg/volume/util/types" @@ -152,22 +151,12 @@ func (c *csiDriverClient) NodeGetInfo(ctx context.Context) ( err error) { klog.V(4).Info(log("calling NodeGetInfo rpc")) - // TODO retries should happen at a lower layer (issue #73371) - backoff := wait.Backoff{Duration: initialDuration, Factor: factor, Steps: steps} - err = wait.ExponentialBackoff(backoff, func() (bool, error) { - var getNodeInfoError error - nodeID, maxVolumePerNode, accessibleTopology, getNodeInfoError = c.nodeGetInfoV1(ctx) - if nodeID != "" { - return true, nil - } - if getNodeInfoError != nil { - klog.Warningf("Error calling CSI NodeGetInfo(): %v", getNodeInfoError.Error()) - } - // Continue with exponential backoff - return false, nil - }) - - return nodeID, maxVolumePerNode, accessibleTopology, err + var getNodeInfoError error + nodeID, maxVolumePerNode, accessibleTopology, getNodeInfoError = c.nodeGetInfoV1(ctx) + if getNodeInfoError != nil { + klog.Warningf("Error calling CSI NodeGetInfo(): %v", getNodeInfoError.Error()) + } + return nodeID, maxVolumePerNode, accessibleTopology, getNodeInfoError } func (c *csiDriverClient) nodeGetInfoV1(ctx context.Context) ( diff --git a/pkg/volume/csi/csi_client_test.go b/pkg/volume/csi/csi_client_test.go index 149319e8bbd..83080da2575 100644 --- a/pkg/volume/csi/csi_client_test.go +++ b/pkg/volume/csi/csi_client_test.go @@ -26,7 +26,6 @@ import ( csipbv1 "github.com/container-storage-interface/spec/lib/go/csi" api "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/csi/fake" volumetypes "k8s.io/kubernetes/pkg/volume/util/types" @@ -314,7 +313,6 @@ func TestClientNodeGetInfo(t *testing.T) { expectedMaxVolumePerNode int64 expectedAccessibleTopology map[string]string mustFail bool - mustTimeout bool err error }{ { @@ -328,13 +326,6 @@ func TestClientNodeGetInfo(t *testing.T) { mustFail: true, err: errors.New("grpc error"), }, - { - name: "test empty nodeId", - mustTimeout: true, - expectedNodeID: "", - expectedMaxVolumePerNode: 16, - expectedAccessibleTopology: map[string]string{"com.example.csi-topology/zone": "zone1"}, - }, } for _, tc := range testCases { @@ -358,13 +349,7 @@ func TestClientNodeGetInfo(t *testing.T) { } nodeID, maxVolumePerNode, accessibleTopology, err := client.NodeGetInfo(context.Background()) - if tc.mustTimeout { - if wait.ErrWaitTimeout.Error() != err.Error() { - t.Errorf("should have timed out : %s", tc.name) - } - } else { - checkErr(t, tc.mustFail, err) - } + checkErr(t, tc.mustFail, err) if nodeID != tc.expectedNodeID { t.Errorf("expected nodeID: %v; got: %v", tc.expectedNodeID, nodeID)