From 83cd4036745db0c54552abd6dfad3a1b2724ae5c Mon Sep 17 00:00:00 2001 From: Andy Goldstein Date: Wed, 1 Mar 2017 12:16:35 -0500 Subject: [PATCH] statefulset: wait for pvc cache sync --- pkg/controller/statefulset/stateful_set.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/controller/statefulset/stateful_set.go b/pkg/controller/statefulset/stateful_set.go index 5b245315297..896731037ee 100644 --- a/pkg/controller/statefulset/stateful_set.go +++ b/pkg/controller/statefulset/stateful_set.go @@ -64,6 +64,8 @@ type StatefulSetController struct { setLister appslisters.StatefulSetLister // setListerSynced returns true if the stateful set shared informer has synced at least once setListerSynced cache.InformerSynced + // pvcListerSynced returns true if the pvc shared informer has synced at least once + pvcListerSynced cache.InformerSynced // StatefulSets that need to be synced. queue workqueue.RateLimitingInterface } @@ -91,7 +93,8 @@ func NewStatefulSetController( recorder, ), ), - queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "statefulset"), + pvcListerSynced: pvcInformer.Informer().HasSynced, + queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "statefulset"), } podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -134,7 +137,7 @@ func (ssc *StatefulSetController) Run(workers int, stopCh <-chan struct{}) { glog.Infof("Starting statefulset controller") - if !cache.WaitForCacheSync(stopCh, ssc.podListerSynced, ssc.setListerSynced) { + if !cache.WaitForCacheSync(stopCh, ssc.podListerSynced, ssc.setListerSynced, ssc.pvcListerSynced) { utilruntime.HandleError(fmt.Errorf("timed out waiting for caches to sync")) return }