From 4ee5550a10a21afa7b6c241483b9f847d3796694 Mon Sep 17 00:00:00 2001 From: Brian Thomas Kennedy Date: Tue, 26 Jun 2018 10:35:49 -0700 Subject: [PATCH] Change enqueuing items to use Add instead of AddRateLimited. Calling 'AddRateLimited' appears to indicate that an error has occurred for the rate limiting queue. This triggers exponential backoff behavior, so if a large number of elements (20+) are owned by a resource and the controller happens to encounter an error, this will cause exponential backoff to reach the 1000 second limit. --- pkg/controller/eventhandlers/eventhandlers.go | 14 +++++++------- pkg/controller/listeningqueue.go | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/controller/eventhandlers/eventhandlers.go b/pkg/controller/eventhandlers/eventhandlers.go index 4716dcfad6..724e8ce880 100644 --- a/pkg/controller/eventhandlers/eventhandlers.go +++ b/pkg/controller/eventhandlers/eventhandlers.go @@ -53,7 +53,7 @@ func (mp MapAndEnqueue) Get(r workqueue.RateLimitingInterface) cache.ResourceEve return } } - mp.addRateLimited(r, obj) + mp.add(r, obj) }, UpdateFunc: func(old, obj interface{}) { for _, p := range mp.Predicates { @@ -61,7 +61,7 @@ func (mp MapAndEnqueue) Get(r workqueue.RateLimitingInterface) cache.ResourceEve return } } - mp.addRateLimited(r, obj) + mp.add(r, obj) }, DeleteFunc: func(obj interface{}) { for _, p := range mp.Predicates { @@ -69,21 +69,21 @@ func (mp MapAndEnqueue) Get(r workqueue.RateLimitingInterface) cache.ResourceEve return } } - mp.addRateLimited(r, obj) + mp.add(r, obj) }, } } -// addRateLimited maps the obj to a string. If the string is non-empty, it is enqueued. -func (mp MapAndEnqueue) addRateLimited(r workqueue.RateLimitingInterface, obj interface{}) { +// add maps the obj to a string. If the string is non-empty, it is enqueued. +func (mp MapAndEnqueue) add(r workqueue.RateLimitingInterface, obj interface{}) { if mp.Map != nil { if k := mp.Map(obj); len(k) > 0 { - r.AddRateLimited(k) + r.Add(k) } } if mp.MultiMap != nil { for _, k := range mp.MultiMap(obj) { - r.AddRateLimited(k.Namespace + "/" + k.Name) + r.Add(k.Namespace + "/" + k.Name) } } } diff --git a/pkg/controller/listeningqueue.go b/pkg/controller/listeningqueue.go index 6d7dc7fb37..617f510ca5 100644 --- a/pkg/controller/listeningqueue.go +++ b/pkg/controller/listeningqueue.go @@ -45,7 +45,7 @@ type listeningQueue struct { func (q *listeningQueue) watchChannel(source <-chan string) error { go func() { for msg := range source { - q.AddRateLimited(msg) + q.Add(msg) } }() return nil