From ec40c08be46be7a335a0186fa12338d9dd53e493 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 11 Feb 2019 22:21:34 +0000 Subject: [PATCH] daemon: Clearly log if error is from draining Saw this in a log: ``` I0211 21:20:46.924255 61902 daemon.go:660] Unable to apply update: rpc error: code = Unknown desc = ``` It must be from the drain; let's make that clear. --- pkg/daemon/update.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkg/daemon/update.go b/pkg/daemon/update.go index 86582e5d6c..1cfedd3d47 100644 --- a/pkg/daemon/update.go +++ b/pkg/daemon/update.go @@ -82,11 +82,13 @@ func (dn *Daemon) updateOSAndReboot(newConfig *mcfgv1.MachineConfig) error { dn.recorder.Eventf(node, corev1.EventTypeNormal, "Drain", "Draining node to update config.") - err = wait.ExponentialBackoff(wait.Backoff{ + backoff := wait.Backoff{ Steps: 5, Duration: 10 * time.Second, Factor: 2, - }, func() (bool, error) { + } + var lastErr error + wait.ExponentialBackoff(backoff, func() (bool, error) { err := drain.Drain(dn.kubeClient, []*corev1.Node{node}, &drain.DrainOptions{ DeleteLocalData: true, Force: true, @@ -94,13 +96,14 @@ func (dn *Daemon) updateOSAndReboot(newConfig *mcfgv1.MachineConfig) error { IgnoreDaemonsets: true, }) if err != nil { - glog.Infof("Draining failed with: %v; retrying...", err) + lastErr = err return false, nil } + lastErr = nil return true, nil }) - if err != nil { - return err + if lastErr != nil { + return errors.Wrapf(lastErr, "Failed to drain node (%s tries)", backoff.Steps) } glog.V(2).Info("Node successfully drained") }