-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Does envoy have limit on the single header size? #39137
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
Comments
cc @yanavlasov @mattklein123 as HCM codeowners (fwiw i ran up against header limit size recently when working LLM prompts) |
If you have increased overall header map size to 1Mb and still had problems, my guess is that there is some other limit, most likely on the HTTP/1.1 start line. @paul-r-gall if he knows that Balsa has the limit on the start-line. |
No limit in Balsa; we actually have integration tests validating large paths: envoy/test/integration/protocol_integration_test.cc Lines 2460 to 2468 in 62fbf5e
|
What response code is Envoy generating? Are there any access logs that you can see? |
@paul-r-gall Sorry for my misunderstanding. Today, I and my partner recollected packets and logs using dumpcap and then tracked the issue again to give you the logs. At first, I thought the problem was due to the header size since the huge header-size packets were all seem to be dropped in one of the pcap files. However, today I found out that sometimes the huge header-size packets passed without any problem. The real problem seems to be the lack of connection pool in our setting, and since the langfuse sends many simultaneous requests to the clickhouse, some of the packets were dropped due to the zero-window issue but it looked as if the huge header-size packets dropped. |
Uh oh!
There was an error while loading. Please reload this page.
Currently, I am testing Langfuse V3 with Istio on the AWS EKS.
Everything except the Export Traces of the Langfuse V3 worked nicely, but Export Traces with many traces keep failing.
This function sends a request to clickhouse to extract trace data using the node.js library @clickhouse/client, and the relevant tcp stream packet is like below.
In our case, we found out that the packet size was about 28 KB ~ 90 KB
Response packet was JSON Body packet with size 170KB ~ 400KB
When we applied istio sidecar to the pod, we found out that the Export Traces failed since the above POST request was dropped. To be concise, the packets with too large single header were all dropped while the packets with large body were not affected at all.
I adjusted
max_request_headers_kb
to 1024 KB but the problem was not solved.My assume right now is that maybe Envoy has a limit on the single header size regardless of the entire header size.
Does anybody know about this problem? Or is there any setting value that I missed to solve this problem?
The text was updated successfully, but these errors were encountered: