Skip to content

Commit b6b46a0

Browse files
authored
fix: Hang when canceling leader election information
Hang when canceling leader election information. Occasionally, two leaders may run simultaneously.
1 parent 62ced20 commit b6b46a0

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

staging/src/k8s.io/client-go/tools/leaderelection/leaderelection.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,9 @@ func (le *LeaderElector) release() bool {
304304
RenewTime: now,
305305
AcquireTime: now,
306306
}
307-
if err := le.config.Lock.Update(context.TODO(), leaderElectionRecord); err != nil {
307+
timeoutCtx, timeoutCancel := context.WithTimeout(context.Background(), le.config.RenewDeadline)
308+
defer timeoutCancel()
309+
if err := le.config.Lock.Update(timeoutCtx, leaderElectionRecord); err != nil {
308310
klog.Errorf("Failed to release lock: %v", err)
309311
return false
310312
}

0 commit comments

Comments
 (0)