From ce917350754381f7f057c4e3e2fd34e002c92d7a Mon Sep 17 00:00:00 2001 From: Rasita Pai Date: Wed, 8 Jun 2022 14:04:49 -0700 Subject: [PATCH 1/2] add missing error handling steps --- .../cloud-provider/controllers/node/node_controller.go | 7 ++++++- .../cloud-provider/controllers/route/route_controller.go | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go b/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go index 9e29bc20f48..979987e59ba 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go @@ -160,7 +160,12 @@ func (cnc *CloudNodeController) Run(stopCh <-chan struct{}) { // The periodic loop for updateNodeStatus communicates with the APIServer with a worst case complexity // of O(num_nodes) per cycle. These functions are justified here because these events fire // very infrequently. DO NOT MODIFY this to perform frequent operations. - go wait.Until(func() { cnc.UpdateNodeStatus(context.TODO()) }, cnc.nodeStatusUpdateFrequency, stopCh) + go wait.Until(func() { + if err := cnc.UpdateNodeStatus(context.TODO()); err != nil { + klog.Errorf("failed to update node status") + } + }, cnc.nodeStatusUpdateFrequency, stopCh) + go wait.Until(cnc.runWorker, time.Second, stopCh) <-stopCh diff --git a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go index 6f934223144..3768f72e98e 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go @@ -267,7 +267,9 @@ func (rc *RouteController) reconcile(nodes []*v1.Node, routes []*cloudprovider.R go func(n *v1.Node) { defer wg.Done() klog.Infof("node %v has no routes assigned to it. NodeNetworkUnavailable will be set to true", n.Name) - rc.updateNetworkingCondition(n, false) + if err := rc.updateNetworkingCondition(n, false); err != nil { + klog.Errorf("failed to update networking condition when no nodeRoutes") + } }(node) continue } @@ -281,7 +283,9 @@ func (rc *RouteController) reconcile(nodes []*v1.Node, routes []*cloudprovider.R } go func(n *v1.Node) { defer wg.Done() - rc.updateNetworkingCondition(n, allRoutesCreated) + if err := rc.updateNetworkingCondition(n, allRoutesCreated); err != nil { + klog.Errorf("failed to update networking condition") + } }(node) } wg.Wait() From 2a1c841f587ba66c94cc9bccdce309f9ad3b682d Mon Sep 17 00:00:00 2001 From: Rasita Pai Date: Wed, 8 Jun 2022 14:29:11 -0700 Subject: [PATCH 2/2] add missing error handling steps --- .../k8s.io/cloud-provider/controllers/node/node_controller.go | 2 +- .../cloud-provider/controllers/route/route_controller.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go b/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go index 979987e59ba..e0964279174 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/node/node_controller.go @@ -162,7 +162,7 @@ func (cnc *CloudNodeController) Run(stopCh <-chan struct{}) { // very infrequently. DO NOT MODIFY this to perform frequent operations. go wait.Until(func() { if err := cnc.UpdateNodeStatus(context.TODO()); err != nil { - klog.Errorf("failed to update node status") + klog.Errorf("failed to update node status: %v", err) } }, cnc.nodeStatusUpdateFrequency, stopCh) diff --git a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go index 3768f72e98e..a16579605ab 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go @@ -268,7 +268,7 @@ func (rc *RouteController) reconcile(nodes []*v1.Node, routes []*cloudprovider.R defer wg.Done() klog.Infof("node %v has no routes assigned to it. NodeNetworkUnavailable will be set to true", n.Name) if err := rc.updateNetworkingCondition(n, false); err != nil { - klog.Errorf("failed to update networking condition when no nodeRoutes") + klog.Errorf("failed to update networking condition when no nodeRoutes: %v", err) } }(node) continue @@ -284,7 +284,7 @@ func (rc *RouteController) reconcile(nodes []*v1.Node, routes []*cloudprovider.R go func(n *v1.Node) { defer wg.Done() if err := rc.updateNetworkingCondition(n, allRoutesCreated); err != nil { - klog.Errorf("failed to update networking condition") + klog.Errorf("failed to update networking condition: %v", err) } }(node) }