router: adding a knob to configure a cap on buffering for shadowing/retries#8574
router: adding a knob to configure a cap on buffering for shadowing/retries#8574mattklein123 merged 12 commits intoenvoyproxy:masterfrom
Conversation
…etries Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
snowp
left a comment
There was a problem hiding this comment.
Looks good to me, just one comment
| // limit if another filter increases it. | ||
| buffer_limit_ = callbacks_->decoderBufferLimit(); | ||
| if (callbacks_->decoderBufferLimit() != 0) { | ||
| retry_shadow_buffer_limit_ = callbacks_->decoderBufferLimit(); |
There was a problem hiding this comment.
its a little bit hard to follow that this limit is set to the buffer limit in the callbacks, then potentially updated in decodeHeaders to account for the retry/shadow limit. Maybe a comment here would help?
| // The maximum bytes which will be buffered for retries and shadowing. | ||
| // The bytes actually buffered will be the minimum value of this and the | ||
| // listener per_connection_buffer_limit_bytes. | ||
| google.protobuf.UInt32Value per_request_buffer_limit_bytes = 16; |
There was a problem hiding this comment.
Would it make sense to have this at multiple levels, e.g. RouteConfiguration and/or VirtualHost. That way, a default can be set that is "safe", without having to do it for every route, and when you have routes with special requirements, e.g. large payloads or streams, we can also override at the route level?
mattklein123
left a comment
There was a problem hiding this comment.
LGTM. An integration test would be nice for this at some point if you have time.
|
Oops looks like this needs master merge. /wait |
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
|
ugh, still conflicting, and fix_format is broken locally |
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
|
/azp rerun |
|
Command 'rerun' is not supported by Azure Pipelines. Supported commands
See additional documentation. |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
* master: (54 commits) Update dependencies - Go, Bazel toos, xxHash, nanopb, rules_go, curl, protobuf, Jinja, yaml-cpp, re2 (envoyproxy#8728) test: increase coverage of listener_manager_impl.cc (envoyproxy#8737) test: modify some macros to reduce number of uncovered lines reported (envoyproxy#8725) build: add a script to setup clang (envoyproxy#8682) http: fix ssl_redirect on external (envoyproxy#8664) docs: update fedora build requirements (envoyproxy#8641) fix draining listener removal logs (envoyproxy#8733) dubbo: fix router doc (envoyproxy#8734) server: provide server health status when stats disabled (envoyproxy#8482) router: adding a knob to configure a cap on buffering for shadowing/retries (envoyproxy#8574) tcp proxy: add default 1 hour idle timeout (envoyproxy#8705) thrift: fix filter names in docs (envoyproxy#8726) Quiche changes to avoid gcc flags on Windows (envoyproxy#8514) test: increase test coverage in Router::HeaderParser (envoyproxy#8721) admin: add drain listeners endpoint (envoyproxy#8415) buffer filter: add content-length when ending stream with trailers (envoyproxy#8609) clarify draining option docs (envoyproxy#8712) build: ignore go-control-plane mirror git commit error code (envoyproxy#8703) api: remove API type database from checked in artifacts. (envoyproxy#8716) admin: correct help strings (envoyproxy#8710) ... Signed-off-by: Spencer Lewis <slewis@squareup.com>
…etries (envoyproxy#8574) Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Risk Level: Medium (refactors to existing router logic)
Testing: new unit tests
Docs Changes: n/a
Release Notes: added