Merge pull request #31406 from foxish/petset-hotloop

Automatic merge from submit-queue

Petset hotlooping issue.

Part of the fix for #27634
It completely fixes it when we also get https://github.com/kubernetes/kubernetes/pull/31396 merged.
This commit is contained in:
Kubernetes Submit Queue 2016-08-26 04:00:32 -07:00 committed by GitHub
commit f0bc7d489c

View File

@ -73,7 +73,7 @@ type PetSetController struct {
blockingPetStore *unhealthyPetTracker
// Controllers that need to be synced.
queue *workqueue.Type
queue workqueue.RateLimitingInterface
// syncHandler handles sync events for petsets.
// Abstracted as a func to allow injection for testing.
@ -94,7 +94,7 @@ func NewPetSetController(podInformer framework.SharedIndexInformer, kubeClient *
newSyncer: func(blockingPet *pcb) *petSyncer {
return &petSyncer{pc, blockingPet}
},
queue: workqueue.New(),
queue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()),
}
podInformer.AddEventHandler(framework.ResourceEventHandlerFuncs{
@ -268,7 +268,9 @@ func (psc *PetSetController) worker() {
defer psc.queue.Done(key)
if errs := psc.syncHandler(key.(string)); len(errs) != 0 {
glog.Errorf("Error syncing PetSet %v, requeuing: %v", key.(string), errs)
psc.queue.Add(key)
psc.queue.AddRateLimited(key)
} else {
psc.queue.Forget(key)
}
}()
}