Skip to content

Commit

Permalink
Update acquire to use newer JitterUntil vs. sleep with 0 timer which may
Browse files Browse the repository at this point in the history
have caused a race in Until.
  • Loading branch information
Timothy St. Clair committed Jul 29, 2016
1 parent 9fab05f commit 9a02bff
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
1 change: 1 addition & 0 deletions pkg/client/leaderelection/OWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
assignees:
- mikedanese
- timothysc
5 changes: 2 additions & 3 deletions pkg/client/leaderelection/leaderelection.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,18 +203,17 @@ func (le *LeaderElector) IsLeader() bool {
// acquire loops calling tryAcquireOrRenew and returns immediately when tryAcquireOrRenew succeeds.
func (le *LeaderElector) acquire() {
stop := make(chan struct{})
wait.Until(func() {
wait.JitterUntil(func() {
succeeded := le.tryAcquireOrRenew()
le.maybeReportTransition()
if !succeeded {
glog.V(4).Infof("failed to renew lease %v/%v", le.config.EndpointsMeta.Namespace, le.config.EndpointsMeta.Name)
time.Sleep(wait.Jitter(le.config.RetryPeriod, JitterFactor))
return
}
le.config.EventRecorder.Eventf(&api.Endpoints{ObjectMeta: le.config.EndpointsMeta}, api.EventTypeNormal, "%v became leader", le.config.Identity)
glog.Infof("sucessfully acquired lease %v/%v", le.config.EndpointsMeta.Namespace, le.config.EndpointsMeta.Name)
close(stop)
}, 0, stop)
}, le.config.RetryPeriod, JitterFactor, true, stop)
}

// renew loops calling tryAcquireOrRenew and returns immediately when tryAcquireOrRenew fails.
Expand Down

0 comments on commit 9a02bff

Please sign in to comment.