mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 14:07:14 +00:00
Merge pull request #29699 from timothysc/leader_jitter
Automatic merge from submit-queue Update acquire to use newer JitterUntil vs. sleep Fix to prevent https://github.com/kubernetes/kubernetes/issues/26782 which could have had a race on a 0 timer the way it was written before due to changes in wait. I will likely make a PR for some of the recent changes in wait as well.
This commit is contained in:
commit
574e7f494c
@ -1,2 +1,3 @@
|
||||
assignees:
|
||||
- mikedanese
|
||||
- timothysc
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user