-
Notifications
You must be signed in to change notification settings - Fork 43.2k
watcherStream.buf in apiserver can grow indefinitely #138217
Copy link
Copy link
Open
etcd-io/etcd
#21704Labels
kind/bugCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.needs-sigIndicates an issue or PR lacks a `sig/foo` label and requires one.Indicates an issue or PR lacks a `sig/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.Indicates an issue or PR lacks a `triage/foo` label and requires one.
Metadata
Metadata
Assignees
Labels
kind/bugCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.needs-sigIndicates an issue or PR lacks a `sig/foo` label and requires one.Indicates an issue or PR lacks a `sig/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.Indicates an issue or PR lacks a `triage/foo` label and requires one.
Type
Fields
Give feedbackNo fields configured for issues without a type.
What happened?
The watcherStream.buf in apiserver can grow indefinitely. When this happens, ConsistentReadFromCache feature will wait for 3s and hope the cache to catch and then delegate to etcd.
One scenario that this can happen: high pod revision churns (pod mutation) and high number of watch requests.
There's no metric or logs that indicate the backlog in this buffer.
Enabling
ConcurrentWatchObjectDecodeFG doesn't help much.What did you expect to happen?
How can we reproduce it (as minimally and precisely as possible)?
It may not be the minimum to reproduce, but the steps I use:
Anything else we need to know?
No response
Kubernetes version
1.34
But I highly suspect it's the same how newer versions
Cloud provider
Details
EKSOS version
Details
Install tools
Details
Container runtime (CRI) and version (if applicable)
Details
Related plugins (CNI, CSI, ...) and versions (if applicable)
Details