mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-06 07:57:35 +00:00
Scheduler queue: fix calculateBackoffDuration overflow in extreme data cases
This commit is contained in:
@@ -742,10 +742,11 @@ func (p *PriorityQueue) getBackoffTime(podInfo *framework.QueuedPodInfo) time.Ti
|
||||
func (p *PriorityQueue) calculateBackoffDuration(podInfo *framework.QueuedPodInfo) time.Duration {
|
||||
duration := p.podInitialBackoffDuration
|
||||
for i := 1; i < podInfo.Attempts; i++ {
|
||||
duration = duration * 2
|
||||
if duration > p.podMaxBackoffDuration {
|
||||
// Use subtraction instead of addition or multiplication to avoid overflow.
|
||||
if duration > p.podMaxBackoffDuration-duration {
|
||||
return p.podMaxBackoffDuration
|
||||
}
|
||||
duration += duration
|
||||
}
|
||||
return duration
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user