Skip to content

informer list and watch keep str error log:too old resource version #129266

Open
@niuyueyang1996

Description

@niuyueyang1996

What happened?

informer list and watch keep str error log:too old resource version
resourceVersion stay at the same value.

What did you expect to happen?

when watch have error:too old resource version,resourceVersion will change other value.
informer recovery available.

How can we reproduce it (as minimally and precisely as possible)?

maybe etcd leader changed.

Anything else we need to know?

if a list request have resourceVersion and have limit or continue,apiserver will query it from etcd and return request resourceVersion.
for example
https://qqqq6443/api/v1/nodes?resourceVersion=1111&limit=10
response resourseVersion will is 1111.

informer
1.use page.list() to list resource from apiserver.
2.get resourceVersion from 1 result.
3.use resourceVersion to watch from apiserver.

then informer page.list will always return 1111.
watch will always std err too old resource version.

Kubernetes version

$ kubectl version
# paste output here

Cloud provider

OS version

# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here

Install tools

Container runtime (CRI) and version (if applicable)

Related plugins (CNI, CSI, ...) and versions (if applicable)

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.sig/api-machineryCategorizes an issue or PR as relevant to SIG API Machinery.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions