Skip to content

watcher always terminal #129197

Open
Open
@niuyueyang1996

Description

@niuyueyang1996

What happened?

when is use
https://xxxxxx/api/v1/pods?timeoutSeconds=10000&watch=true

watcher will terminal

we have 100000 pods

i see #13969

this param will return all pods event

(c *cacheWatcher) processInterval will exec process func when initEvents send to result success,but is took 5s-6s.
if process func not be exec,watcher input chan will not have comsumer.

then watcher will be blockedWatcher,when etcd have changed
the func watcher.add(event, timer) will timeout and kill my watcher.

What did you expect to happen?

watcher keep to timeoutSecond

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

https://xxxxxx/api/v1/pods?timeoutSeconds=10000&watch=true
100000 pods

Anything else we need to know?

No response

Kubernetes version

$ kubectl version
# paste output here
1.30

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