-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTPRoute status
field not populated at all, or takes a very long time
#12310
Comments
Another httproute
and it took about 40 minutes for the
|
@aminafshar this looks like it is likely the same issue as #12104 and is fixed in #12215 |
This was fixed in https://github.com/linkerd/linkerd2/releases/tag/edge-24.3.4. Please let us know if issues persist. |
@adleong , @olix0r
|
As you see memory usage became a flat line for the last 7 hours, and seems the policy controller is just stuck in that state, keeps throwing the same error
|
Hi @aminafshar, sorry to hear you're still experiencing this. Those error messages indicates that the policy controller is generating HTTPRoute status patches more quickly than the kubernetes API can keep up with. The policy controller will only generate a patch for an HTTPRoute if the HTTPRoute's status is out of date and needs to be updated. I've attempted to reproduce this with 1000 HTTPRoutes but I only see patches generated when the HTTTPRoutes are first created and not continuously like you seem to be experiencing. Are HTTPRoutes being created or updated rapidly by some controller or automated process? If you can provide the output of |
Hi @adleong , I asked our developers to provide info on how they create and manage httproutes. At the time of writing, there are about ~60 httproutes on the cluster and only a few deleted/created recently. |
Thank you for this very helpful data. Using this, I was able to reproduce the issue and found the root cause to be a missing field in the HTTPRoute CRD schema. I've added the missing field here #12454 and confirmed that this resolves the issue. |
What is the issue?
HTTPRoute is not being picked up by Linkerd, hence
status
field is not populated at all, or takes a very long time, could take tens of minutes.The policy controller container in the destination pod keeps throwing errors "Failed to patch HTTPRoute" with reason httproute NotFound.
policy
container memory usage is quite high (several gigs) compared to the other components.In cases where we created a high number of httproutes, say 1000, memory usage increases steeply until it hits the limit and OOMKilled, in our case 16Gi.
It backs to a normal working state with a restart:
kubectl rollout restart -n linkerd deployment linkerd-destination
How can it be reproduced?
Create new httproutes, or update/delete existing httproutes constantly.
Existing httproute, but we see NotFound errors for it (logs copied below):
New httproute which its status not populated till we restart the linkerd destination pod:
Logs, error output, etc
output of
linkerd check -o short
Environment
Possible solution
No response
Additional context
No response
Would you like to work on fixing this bug?
None
The text was updated successfully, but these errors were encountered: