From 102090d1f12f9b00571d440470ba040e0632fbe0 Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Thu, 7 Jun 2018 14:33:03 +1000 Subject: [PATCH] Use context.TODO() to be explicit that cancellation is not implemented --- cmd/cloud-controller-manager/app/controllermanager.go | 7 ++----- cmd/kube-controller-manager/app/controllermanager.go | 7 ++----- cmd/kube-scheduler/app/server.go | 8 ++++---- .../client-go/tools/leaderelection/leaderelection.go | 5 ++--- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/cmd/cloud-controller-manager/app/controllermanager.go b/cmd/cloud-controller-manager/app/controllermanager.go index f0348b42278..0b73740cbea 100644 --- a/cmd/cloud-controller-manager/app/controllermanager.go +++ b/cmd/cloud-controller-manager/app/controllermanager.go @@ -157,11 +157,8 @@ func Run(c *cloudcontrollerconfig.CompletedConfig) error { } } - runCtx, cancel := context.WithCancel(context.Background()) - defer cancel() - if !c.ComponentConfig.GenericComponent.LeaderElection.LeaderElect { - run(runCtx) + run(context.TODO()) panic("unreachable") } @@ -187,7 +184,7 @@ func Run(c *cloudcontrollerconfig.CompletedConfig) error { } // Try and become the leader and start cloud controller manager loops - leaderelection.RunOrDie(runCtx, leaderelection.LeaderElectionConfig{ + leaderelection.RunOrDie(context.TODO(), leaderelection.LeaderElectionConfig{ Lock: rl, LeaseDuration: c.ComponentConfig.GenericComponent.LeaderElection.LeaseDuration.Duration, RenewDeadline: c.ComponentConfig.GenericComponent.LeaderElection.RenewDeadline.Duration, diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index b465104571a..f3d45b2d13c 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -181,11 +181,8 @@ func Run(c *config.CompletedConfig) error { select {} } - runCtx, cancel := context.WithCancel(context.Background()) - defer cancel() - if !c.ComponentConfig.GenericComponent.LeaderElection.LeaderElect { - run(runCtx) + run(context.TODO()) panic("unreachable") } @@ -208,7 +205,7 @@ func Run(c *config.CompletedConfig) error { glog.Fatalf("error creating lock: %v", err) } - leaderelection.RunOrDie(runCtx, leaderelection.LeaderElectionConfig{ + leaderelection.RunOrDie(context.TODO(), leaderelection.LeaderElectionConfig{ Lock: rl, LeaseDuration: c.ComponentConfig.GenericComponent.LeaderElection.LeaseDuration.Duration, RenewDeadline: c.ComponentConfig.GenericComponent.LeaderElection.RenewDeadline.Duration, diff --git a/cmd/kube-scheduler/app/server.go b/cmd/kube-scheduler/app/server.go index f815b479168..6b8edc86cc8 100644 --- a/cmd/kube-scheduler/app/server.go +++ b/cmd/kube-scheduler/app/server.go @@ -187,14 +187,14 @@ func Run(c schedulerserverconfig.CompletedConfig, stopCh <-chan struct{}) error <-ctx.Done() } - runCtx, cancel := context.WithCancel(context.TODO()) // once Run() accepts a context, it should be used here + ctx, cancel := context.WithCancel(context.TODO()) // TODO once Run() accepts a context, it should be used here defer cancel() go func() { select { case <-stopCh: cancel() - case <-runCtx.Done(): + case <-ctx.Done(): } }() @@ -211,13 +211,13 @@ func Run(c schedulerserverconfig.CompletedConfig, stopCh <-chan struct{}) error return fmt.Errorf("couldn't create leader elector: %v", err) } - leaderElector.Run(runCtx) + leaderElector.Run(ctx) return fmt.Errorf("lost lease") } // Leader election is disabled, so run inline until done. - run(runCtx) + run(ctx) return fmt.Errorf("finished without leader elect") } diff --git a/staging/src/k8s.io/client-go/tools/leaderelection/leaderelection.go b/staging/src/k8s.io/client-go/tools/leaderelection/leaderelection.go index 63c29189fa9..233dae53f2e 100644 --- a/staging/src/k8s.io/client-go/tools/leaderelection/leaderelection.go +++ b/staging/src/k8s.io/client-go/tools/leaderelection/leaderelection.go @@ -208,10 +208,9 @@ func (le *LeaderElector) renew(ctx context.Context) { ctx, cancel := context.WithCancel(ctx) defer cancel() wait.Until(func() { - // PollUntil() sleeps for "interval" duration before calling the function so we need to increase the timeout by le.config.RetryPeriod - timeoutCtx, timeoutCancel := context.WithTimeout(ctx, le.config.RetryPeriod+le.config.RenewDeadline) + timeoutCtx, timeoutCancel := context.WithTimeout(ctx, le.config.RenewDeadline) defer timeoutCancel() - err := wait.PollUntil(le.config.RetryPeriod, func() (bool, error) { + err := wait.PollImmediateUntil(le.config.RetryPeriod, func() (bool, error) { return le.tryAcquireOrRenew(), nil }, timeoutCtx.Done()) le.maybeReportTransition()