From 01b399187ef018454769f351c110f05956646482 Mon Sep 17 00:00:00 2001 From: Soam Vasani Date: Tue, 28 Mar 2017 12:42:59 +0200 Subject: [PATCH] Work around 'too old resource version' --- kubewatcher/kubewatcher.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kubewatcher/kubewatcher.go b/kubewatcher/kubewatcher.go index b081b7f3..62537a1e 100644 --- a/kubewatcher/kubewatcher.go +++ b/kubewatcher/kubewatcher.go @@ -144,7 +144,7 @@ func printKubernetesObject(obj runtime.Object, w io.Writer) error { func createKubernetesWatch(kubeClient *kubernetes.Clientset, w *fission.Watch, resourceVersion string) (watch.Interface, error) { var wi watch.Interface var err error - var watchTimeoutSec int64 = 300 + var watchTimeoutSec int64 = 120 // TODO populate labelselector and fieldselector listOptions := api.ListOptions{ @@ -264,6 +264,8 @@ func (ws *watchSubscription) eventDispatchLoop() { if ev.Type == watch.Error { e := apierrs.FromObject(ev.Object) log.Println("Watch error, retrying in a second: %v", e) + // Start from the beginning to get around "too old resource version" + ws.lastResourceVersion = "" time.Sleep(time.Second) break } @@ -274,6 +276,7 @@ func (ws *watchSubscription) eventDispatchLoop() { log.Printf("rv=%v", rv) ws.lastResourceVersion = rv } + ws.publisher.Publish(ev, ws.Watch.Target) } if atomic.LoadInt32(ws.stopped) == 0 {