-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
HTTP filters that put after envoy.router don't work but envoy can still boot up with that configuration #7767
Comments
@mattklein123 Do you think it would make sense to add some kind of (maybe optional) validation that errors out if there are filters after a terminal filter? Or should we just document the requirements? |
@alyssawilk in thinking about this a bit more, I wonder if we should do this:
|
Darn it, you called me on my slippery slope. |
@alyssawilk I think those three, and it's a pretty trivial change that then puts this in the hands of the filter writer, so it seems more future proof to me? |
+1 on making it part of the API, I imagine the redis/thrift filters also fall into this category |
Ah yes, redis/thrift also. |
Also Dubbo |
This is where I knew I'd miss one :-P OK, new PR coming up. Ironically I hadn't even seen this issue filed, I'd been commenting over on 7738 where the router was the first of three on the first pass, and second of three on their next try. So yeah, this comes up a bunch. |
…ective chains (#7779) An (no longer annoyingly one-off) solution to the common problem folks run into with Envoy configs where they add their filters behind the router filter and don't get why things aren't working. Ditto for HCM, tcp_proxy etc for L4 Risk Level: Low (except for folks with broken config) Testing: new UT Docs Changes: n/a Release Notes: n/a Fixes #7767 Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Title: HTTP filters that put after envoy.router don't work but envoy can still boot up with that configuration
Description:
I'm trying to add the buffer filter to the http filters list so that we can set max request size. What I observed is that if I put the buffer filter after envoy.router filter, I don't get a 413 response when sending a request with a large file, but envoy can still boot with that configuration. On the other hand, if I reverse the order and put envoy.router filter after the buffer filter, it works as expected.
It's weird to me that yaml configuration still compiles and envoy is able to boot up with that configuration while the router filter doesn't propagate requests to subsequent filters. I can't seem to find anything in the docs implying this behavior. At least I would expect the router filter doc be updated saying that it should be the last one in the http filters list.
Config:
The one that's not working:
The one that's working:
The text was updated successfully, but these errors were encountered: