-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Labels
lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Description
Describe the bug
Informer ReflectorRunnable doesn't recover from "Too large resource version".
ApiException.getResponseBody is like:
{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Timeout: Too large resource version: 5399771, current: 5399139","reason":"Timeout","details":{"causes":[{"reason":"ResourceVersionTooLarge","message":"Too large resource version"}],"retryAfterSeconds":1},"code":504}
Based on my understanding, this could happen at list call when the resource version param is too large for that API server / ETCD instance.
We should set isLastSyncResourceVersionUnavailable = true; in this case.
See go client: kubernetes/client-go@ec46b97
Client Version
All versions including 13 and 14.
Kubernetes Version
1.21
Java Version
n/a
To Reproduce
Run informer and make API server return ResourceVersionTooLarge.
Expected behavior
Set isLastSyncResourceVersionUnavailable and redo consistent read from ETCD.
KubeConfig
n/a
Server (please complete the following information):
n/a
Additional context
n/a
Metadata
Metadata
Assignees
Labels
lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.Denotes an issue or PR that has aged beyond stale and will be auto-closed.