Work around 'too old resource version'

This commit is contained in:
Soam Vasani
2017-03-28 12:42:59 +02:00
parent b4dd7a83df
commit 01b399187e
+4 -1
View File
@@ -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) { func createKubernetesWatch(kubeClient *kubernetes.Clientset, w *fission.Watch, resourceVersion string) (watch.Interface, error) {
var wi watch.Interface var wi watch.Interface
var err error var err error
var watchTimeoutSec int64 = 300 var watchTimeoutSec int64 = 120
// TODO populate labelselector and fieldselector // TODO populate labelselector and fieldselector
listOptions := api.ListOptions{ listOptions := api.ListOptions{
@@ -264,6 +264,8 @@ func (ws *watchSubscription) eventDispatchLoop() {
if ev.Type == watch.Error { if ev.Type == watch.Error {
e := apierrs.FromObject(ev.Object) e := apierrs.FromObject(ev.Object)
log.Println("Watch error, retrying in a second: %v", e) 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) time.Sleep(time.Second)
break break
} }
@@ -274,6 +276,7 @@ func (ws *watchSubscription) eventDispatchLoop() {
log.Printf("rv=%v", rv) log.Printf("rv=%v", rv)
ws.lastResourceVersion = rv ws.lastResourceVersion = rv
} }
ws.publisher.Publish(ev, ws.Watch.Target) ws.publisher.Publish(ev, ws.Watch.Target)
} }
if atomic.LoadInt32(ws.stopped) == 0 { if atomic.LoadInt32(ws.stopped) == 0 {