From 1d98b2e8b38bc127c7477347c61659ad874b0f86 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 25e6ba41526..45c0e806887 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 @@ -163,7 +163,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 028ba04b77f..8ec07942e7f 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,9 @@ func (rc *RouteController) reconcile(ctx context.Context, nodes []*v1.Node, rout 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 } @@ -282,7 +284,9 @@ func (rc *RouteController) reconcile(ctx context.Context, nodes []*v1.Node, rout } 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 af26d11190e0cd177057f2f30737c6e182bd89b6 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 45c0e806887..b0ea2240fea 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 @@ -165,7 +165,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 8ec07942e7f..65f18fc41b0 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 @@ -269,7 +269,7 @@ func (rc *RouteController) reconcile(ctx context.Context, nodes []*v1.Node, rout 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 @@ -285,7 +285,7 @@ func (rc *RouteController) reconcile(ctx context.Context, nodes []*v1.Node, rout 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) }