forked from envoyproxy/envoy
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Lazy rds #4
Closed
Closed
Lazy rds #4
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes envoyproxy#11990. Signed-off-by: Raul Gutierrez Segales <rgs@pinterest.com>
Adds new retry policy envoy-ratelimited that retries responses containing the header x-envoy-ratelimited. Signed-off-by: Martin Matusiak <numerodix@gmail.com>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
- ensure that all listeners are in the correct state using config dumps and stats - adds a verification class that holds an abstract representation of the state Envoy should be in which is then compared to Envoy's actual state from the config dumps - currently working on also actually draining the listeners to ensure they are in the correct state during/after but Envoy crashes when trying to drain using simulated time so I'm looking into this for a future PR - I also added a few more corpus entries that had failed previously on libfuzzer removed removeRoute since RDS cannot explicitly remove routes, it's up to Envoy to remove them when no listeners refer to them Risk Level: Low Testing: ran with libfuzzer, fixes previous timeouts/crashes Docs Changes: N/A Release Notes: N/A Signed-off-by: Sam Flattery <samflattery@google.com>
…#12034) Previously, a hard-coded set of buckets were used, which were not appropriate for the range or required precision of some histograms. Fixes envoyproxy#7599 Signed-off-by: Greg Greenway <ggreenway@apple.com>
Until a real solution for envoyproxy#12209 is found.: Signed-off-by: Matt Klein <mklein@lyft.com>
Commit Message: Fix crash in filter fuzz test due to validation not running until after cleaning since the input config message contains an Any field, validation is not run on it, so I added a check to make sure that there was at least one sink before trying to deference Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24301 Signed-off-by: Sam Flattery <samflattery@google.com>
The stat is incremented before the socket close. Risk Level: None Testing: N/A Docs Changes: N/A Release Notes: N/A Signed-off-by: Matt Klein <mklein@lyft.com>
envoyproxy#12160 changed the behavior of remove() to not first look in the inline header map for a header. This is a subtle change in behavior that specifically breaks attempting to remove ":authority" via the "host" mapping. This restores that behavior and is thus a bug fix and low risk. Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
envoyproxy#12037) This PR provides intentional semantics for: Multiple-100 headers; these are always coalesced to a single 100 header when proxying. 101 headers: these are always passed to decodeHeaders(). Non-{100,101} 1xx headers, e.g. 102/103, are always ignored by Envoy. UpstreamRequest is responsible for guaranteeing that HCM observes the above properties. Codecs should pass 100 headers to decode100ContinueHeaders and all other 1xx to decodeHeaders. This PR follows the discussion in envoyproxy#11433 (comment). Risk level: Medium Testing: Unit tests for codecs and UpstreamRequest added. Integration tests for non-101 and multiple 101 headers added. Fixes OSS-fuzz issue https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21628. Fixes envoyproxy#11433 Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: Kuat Yessenov <kuat@google.com>
- refactored cache setup script Signed-off-by: Lizan Zhou <lizan@tetrate.io>
… up test compilation (envoyproxy#12048) breakdown test/mocks/upstream/mocks.h into different mock classes test/mocks/upstream/mocks.h is a wide-used mock header included by various test files. However it's very huge and most test files only used a small portion of it. Splitting it up into different mock classes will be helpful to reduce compilation time. (similar to envoyproxy#11797 ) Risk Level: low Testing: existing tests Docs Changes: N/A Release Notes: no Related Issues: envoyproxy#10917 Signed-off-by: Muge Chen <mugechen@google.com>
Until envoyproxy#12258 is fixed. Signed-off-by: Matt Klein <mklein@lyft.com>
Currently, in scope route discovery service, when resources are received from a management server, for each added, updated and removed scope route, a callback is fired. If several update callbacks are combined into a single update callback, less performance penalty will be incurred. This can be achieved by moving applyConfigUpdate out of the for loop and applying all the updates in a single callback. In this case, partial update won't be accepted both in sotw and delta srds. Scope key and scope name conflicts will be checked before any config update is applied. Risk Level: Low Testing: Modify a unit test related to change. Docs Changes: The behavior of delta srds will be changed, partial update won't be accepted. Signed-off-by: chaoqinli <chaoqinli@google.com>
Waiting on a load stats response can race with resetting the counters when initializing a watch. Moving the counter increment prevents the race. Fixes envoyproxy#11784 Signed-off-by: Matt Klein <mklein@lyft.com>
…enchmark_test_benchmark_test timeouts under tsan (envoyproxy#12264) also, bump up the googlebenchmark version to pickup the fix to SkipWithError, google/benchmark#938 Signed-off-by: Antonio Vicente <avd@google.com>
…voyproxy#12173) Adds support for DOWNSTREAM_PEER_FINGERPRINT_1 that sends SHA1 finger print of peer cert as a custom header. Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
…envoyproxy#12069) To fix envoyproxy#11877, we need to handle safely the case where two watches point at the same resource, and a WatchMap onConfigUpdate() causes one watch to remove the other watch during its invoked onConfigUpdate(). While working on this, it made sense to fix envoyproxy#11674, avoiding spurious ClusterLoadAssignment discovery requests in the regression integration test. Risk level: Medium (this has xDS wire-level implications). Testing: New unit tests for pause/resume, regression unit and integration tests for watch map removal behaviors. Fixes envoyproxy#11877 envoyproxy#11674 Signed-off-by: Harvey Tuch <htuch@google.com> Co-authored-by: Sebastian Schepens <sebastian.schepens@mercadolibre.com>
Althought this filter is deprecated in favor of the compressor filter, let's go ahead and fix the incorrect reference to the now optional runtime feature flag. Signed-off-by: Raul Gutierrez Segales <rgs@pinterest.com>
… changes (envoyproxy#12240) Signed-off-by: Greg Greenway <ggreenway@apple.com>
Signed-off-by: Asra Ali <asraa@google.com>
We need to wait for all listeners to be up. Fixes envoyproxy#12253 (and maybe other flakes) Risk Level: None Testing: Existing tests Docs Changes: N/A Release Notes: N/A Signed-off-by: Matt Klein <mklein@lyft.com>
We heard back from Istio that release adjacency to EOQ wasn't great, and from other internal teams that more details on the CVEs in the distributor mailout would be helpful. Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
Signed-off-by: Martin Matusiak <numerodix@gmail.com>
Signed-off-by: Kuat Yessenov <kuat@google.com>
I found that the code block in `grpc_bridge.rst` hasn't been displayed well. So I fixed it. Signed-off-by: zawawahoge <zawawahoge@gmail.com>
…nvoyproxy#12089) By default, jwt_authn filter extracts JWT token from `Authorization` header and `access_token` query parameter. A request may have multiple JWT tokens, and will be forwarded to the backend if one of the tokens is good. It poses a security risk: a hacker can put a good token in the query parameter and an invalid one in the Authorization header. Envoy will forward the request to the backend, and the backend will use the bad token in Authorization header. This PR try to patch such security hole: all tokens in a request should be valid. Risk Level: Low. This change only impacts the requests with multiple JWT tokens. In production traffic, it will be very rare that a request have multiple JWT tokens. Testing: Unit-test Docs Changes: None Release Notes: None Signed-off-by: Wayne Zhang <qiwzhang@google.com>
Commit Message: add a couple static registration macros Additional Description: needed for registration in static library environments. Risk Level: low Testing: local Signed-off-by: Jose Nino <jnino@lyft.com>
Signed-off-by: Lizan Zhou <lizan@tetrate.io>
This should avoid TSAN timeout flakes. Signed-off-by: Matt Klein <mklein@lyft.com>
…railers (envoyproxy#12178) This adds `envoy.reloadable_features.skip_encoding_empty_trailers` runtime feature flag (enabled by default) to skip encoding empty trailers in H2 codec. This behavior can be reverted temporarily by setting runtime feature `envoy.reloadable_features.skip_encoding_empty_trailers` to false. Before this commit, seeing empty trailers of gRPC-Web filter response, codec submits: ``` [ 5.036] recv DATA frame <length=28, flags=0x00, stream_id=13> [ 5.040] recv DATA frame <length=52, flags=0x00, stream_id=13> [ 5.053] recv HEADERS frame <length=0, flags=0x05, stream_id=13> ; END_STREAM | END_HEADERS ``` After: ``` [ 5.036] recv DATA frame <length=28, flags=0x00, stream_id=13> [ 5.040] recv DATA frame <length=52, flags=0x00, stream_id=13> [ 5.052] recv DATA frame <length=0, flags=0x01, stream_id=13> ; END_STREAM ``` Risk Level: Low Testing: Unit, integration tests. Docs Changes: N/A. Release Notes: Added Fixes envoyproxy#10514 Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
…#12410) Adds support for X-RateLimit-* headers described in the draft RFC. The X-RateLimit-Limit header contains the quota-policy per RFC. The descriptor name is included in the quota policy under the name key. X-RateLimit-Reset header is emitted, but it would need a followup in the ratelimit service, which I will do once this is merged. Signed-off-by: Petr Pchelko <ppchelko@wikimedia.org>
…ts (envoyproxy#12483) We noticed that certain headers-only requests were not having their respective responses be compressed. Ultimately the problem was that the decompressor filter was not advertising accept-encoding for headers-only requests. This PR advertises (when configured to do so and response decompression is active) even on headers-only requests. Signed-off-by: Jose Nino <jnino@lyft.com>
Followup for a new feature introduced by envoyproxy#12410 Apologies for not noticing that a later draft was introduced recently. I think we should start with supporting the latest available spec draft, so update version 2 to version 3. The change is technically backwards-incompatible, but the new feature was introduced one day ago, nobody could have been so fast to depend on it. Signed-off-by: Petr Pchelko <ppchelko@wikimedia.org>
Moves the ownership of the StreamInfoImpl into the FilterManager, exposed via an accessor to allow the ActiveStream to still modify/read the StreamInfo. Moves the interaction with the FilterChainFactory into the FilterManager, as well as ownership over the access logs created via the factory callbacks. Signed-off-by: Snow Pettersen <aickck@gmail.com>
Signed-off-by: Lizan Zhou <lizan@tetrate.io>
This patch enables the following tests on Windows: 1. //test/common/http:codec_client_test 2. //test/common/network:listener_impl_test 3. //test/common/network:connection_impl_test To do so we swap the addresses to use `getCanonicalLoopbackAddress` instead of `getAnyAddress` and we add synchronization in `ConnectionImplTest.ReadWatermarks` tests. Additional Description: N/A Risk Level: Low, test only Testing: Updated unit tests Docs Changes: N/A Release Notes: N/A Signed-off-by: Sotiris Nanopoulos <sonanopo@microsoft.com>
- Tests that used a non-blocking libevent event loop are flaky on Windows (and would be flaky on other platforms if event notifications routinely took longer to be propagated) since the event loop could exit before an event notification. Switching to use a blocking event loop prevents early exit before filesystem events are evaluated. - Skip SymlinkAtomicRename test as Windows does not have an atomic file move API that can move a directory/symlink where the new name is a non-empty existing directory/symlink (MoveFileEx can atomically replace a file with a file, however). Signed-off-by: William A Rowe Jr <wrowe@vmware.com> Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com> Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
…voyproxy#12479) Some filter factories allocate TLS slots shared via shared pointers. On a filter config update, the last filter factory reference happens to be deleted on a worker thread, which causes a runtime failure since TLS slots must be deleted on the main thread. The solution is to prolong the life of the filter factory using main thread completion callback. Signed-off-by: Kuat Yessenov <kuat@google.com>
Signed-off-by: Lizan Zhou <lizan@tetrate.io>
Signed-off-by: Lizan Zhou <lizan@tetrate.io>
…1914) This change delete the read filter before udp listener deletion. Signed-off-by: DongRyeol Cha <dr83.cha@samsung.com>
…xy#12506) Signed-off-by: Lizan Zhou <lizan@tetrate.io>
…e event loop (envoyproxy#11823) Processing 0-delay timers in the same loop they are generated can result in long timer callback chains which could starve other operations in the event loop or even result in infinite processing loops. Cases that required same-iteration scheduling behavior for 0-delay timers were refactored to use SchedulableCallback::scheduleCallbackCurrentIteration in envoyproxy#11663, so behavior changes due to this change should be relatively minor. Signed-off-by: Antonio Vicente <avd@google.com>
… new H/2 codec (envoyproxy#12471) When legacy codecs were swapped to be the default, the test flag to flip wasn't swapped. This swaps so that compile time options or (--define use_new_codecs_in_integration_tests=true) will run integration tests with new codecs, default legacy. Make linter for H/2 codec so no one reintroduces a throw. Added testing Signed-off-by: Asra Ali <asraa@google.com>
…fuzzer (envoyproxy#12464) Added coverage for 8 additional filters in WriteFilter generic fuzzer: Added thrift filters into envoy_all_network_filters so that thrift filters can be loaded when we load thrift_proxy filter. Or otherwise thrift filters cannot be found in the thrift filter factory. Signed-off-by: jianwen <jianwendong@google.com>
1. Reduce code repetition: * In 'admin.cc': There are many times of ```get()``` from ```absl::optional``` for the same value. Similar for ```host->address()->asString()```. So I merged them together to avoid multiple calls for the same value. * Similar problem inside "connection_handler_impl.cc" 2. Adopt pair binding feature in C++ 17. Risk Level: Low Signed-off-by: pingsun <pingsun@google.com>
Splits the State object into two, one for the ActiveStream and one for the FilterManager. To better split the responsibility, introduce new functions on the FM and on the FM callbacks, cleaning up a few TODOs on the way. Signed-off-by: Snow Pettersen <aickck@gmail.com>
On Windows, configure event-base to use wepoll backend instead of the default win32 backend. Risk Level: Low Testing: CI Docs Changes: N/A Release Notes: N/A Signed-off-by: Nick Grifka <nigri@microsoft.com>
…nal handlers (envoyproxy#12062) Add hooks for calling fatal error handlers from non-Envoy signal handlers. Move register/removeFatalErrorHandler from SignalAction into a new FatalErrorHandler namespace, and add a new function, callFatalErrorHandlers, which runs the registered error handlers. This makes the crash logging from issue envoyproxy#7300 available for builds that don't use ENVOY_HANDLE_SIGNALS, as long as they do use ENVOY_OBJECT_TRACE_ON_DUMP. Risk Level: Low Testing: bazel test //test/... Docs Changes: N/A Release Notes: Added Fixes envoyproxy#11984 Signed-off-by: Michael Behr <mkbehr@google.com>
This patch updates ICU to 67.1 and googleurl to https://quiche.googlesource.com/googleurl/+/ef0d23689e240e6c8de4c3a5296b209128c87373. This reduces `bazel/external/googleurl.patch` to only handling MSVC quirks. Please note that googleurl direction for Windows is to use clang-cl, while we still use msvc-cl (hence the patch). Risk Level: Low Testing: Existing Docs Changes: N/A Release Notes: N/A Fixes envoyproxy#12015 Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
Risk Level: medium without being fixed Testing: rebuilding docs has been tested with the change to the protodoc compiler Docs Changes: n/a Release Notes: Fixes envoyproxy#12533 Signed-off-by: Ryan Northey <ryan@synca.io>
…yproxy#12232) When a stale cache hit is found for a request, conditional headers are injected to the request for validation. If the a 304 response is received (not modified), a response is constructed from cache, and cached headers are updated. If a request already includes conditional headers it bypasses the CacheFilter, this is valid behavior and satisfies the minimum of envoyproxy#9855 for production -- however, it can lead to missed caching opportunities. Risk Level: Low Testing: Integration tests Docs Changes: N/A Release Notes: N/A Fixes envoyproxy#9976 Signed-off-by: Yosry Ahmed <yosryahmed@google.com>
chaoqin-li1123
pushed a commit
that referenced
this pull request
Jun 23, 2022
…yproxy#20170) * test: adding a multi-envoy test (envoyproxy#20016) Functionally this handles the multi-envoy signal handler crash skips instantiating a runtime singleton (off by default, must stay off until remove global runtime: rebase runtime features on ABSL_flags envoyproxy#19847 is closed) Multi-envoy does not correctly support runtime flags or deprecation stats due to envoyproxy#19847 being incomplete. It can still handle proxy traffic client - L1 - L2 - upstream as shown in test. Risk Level: low Testing: yes Docs Changes: n/a Release Notes: n/a Part of envoyproxy/envoy-mobile#2003 Signed-off-by: Alyssa Wilk <alyssar@chromium.org> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * Add a congestionWindowInBytes method to Envoy::Network::Connection (envoyproxy#20105) Signed-off-by: Bin Wu <wub@google.com> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * Update QUICHE from 50f15e7a5 to cf1588207 (envoyproxy#20154) https://github.com/google/quiche/compare/50f15e7a5..cf1588207 $ git log 50f15e7a5..cf1588207 --date=short --no-merges --format="%ad %al %s" 2022-02-28 wub Deprecate --gfe2_reloadable_flag_quic_crypto_noop_if_disconnected_after_process_chlo. 2022-02-27 vasilvv Remove QuicheMemSlice(QuicUniqueBufferPtr, size_t) constructor. 2022-02-26 fayang Use std::string instead of absl::string_view in CryptoBufferMap. 2022-02-25 bnc Ignore incoming HTTP/3 MAX_PUSH_ID frames. 2022-02-25 bnc Remove Http3DebugVisitor::OnMaxPushIdFrameSent(). 2022-02-25 bnc Remove QuicSpdySession::CanCreatePushStreamWithId(). 2022-02-25 fayang Deprecate gfe2_reloadable_flag_quic_single_ack_in_packet2. Signed-off-by: Alyssa Wilk <alyssar@chromium.org> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * build(deps): bump actions/stale from 4.1.0 to 5 (envoyproxy#20159) Bumps [actions/stale](https://github.com/actions/stale) from 4.1.0 to 5. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](actions/stale@v4.1.0...v5) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * admin: improve test coverage and increase the coverage-percent threshold (envoyproxy#20025) Adds a missing test for recent lookups now that there are no more fake symbol tables. Adds tests for a variety of override methods defined in admin.h that were previously hard to hit. Adds a benchmark test to establish a baseline for the speedups in envoyproxy#19693 Signed-off-by: Joshua Marantz <jmarantz@google.com> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * test: removing a bunch of direct runtime singleton access (envoyproxy#19993) Signed-off-by: Alyssa Wilk <alyssar@chromium.org> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * build(deps): bump grpcio-tools in /examples/grpc-bridge/client (envoyproxy#20040) Bumps [grpcio-tools](https://github.com/grpc/grpc) from 1.43.0 to 1.44.0. - [Release notes](https://github.com/grpc/grpc/releases) - [Changelog](https://github.com/grpc/grpc/blob/master/doc/grpc_release_schedule.md) - [Commits](grpc/grpc@v1.43.0...v1.44.0) --- updated-dependencies: - dependency-name: grpcio-tools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds to spellcheck Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * xray tracer: set subsegment type for child spans (#2) * xray tracer: set subsegment type for child spans Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds test coverage Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * Xray subsegment (#3) * xray tracer: set subsegment type for child spans Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds test coverage Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates xray subsegment name to use operation name (instead of parent's span name) Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * Xray subsegment (#4) * xray tracer: set subsegment type for child spans Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds test coverage Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates xray subsegment name to use operation name (instead of parent's span name) Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds to spell check dictionary Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * fixes spellcheck Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds to spellcheck Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> xray tracer: set subsegment type for child spans (#2) * xray tracer: set subsegment type for child spans Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds test coverage Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> Xray subsegment (#3) * xray tracer: set subsegment type for child spans Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds test coverage Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates xray subsegment name to use operation name (instead of parent's span name) Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> Xray subsegment (#4) * xray tracer: set subsegment type for child spans Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds test coverage Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates xray subsegment name to use operation name (instead of parent's span name) Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * updates doc Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * adds to spell check dictionary Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> fixes spellcheck Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> * fixes spell check Signed-off-by: Rex Chang <58710378+rexnp@users.noreply.github.com> Co-authored-by: alyssawilk <alyssar@chromium.org> Co-authored-by: Bin Wu <46450037+wu-bin@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joshua Marantz <jmarantz@google.com>
chaoqin-li1123
pushed a commit
that referenced
this pull request
Aug 24, 2022
…roxy#22689) Commit Message: stream_idle_timer_ is armed to timeout the sending of the bufferred response payload in the quic stream send buffer after the end stream is buffered in the stream. But today this timer is armed even if the the encoding of the payload causes the stream to be closed, in which case the timer can never be cancelled till the stream destruction with ASSERT hit as below: [2022-08-12 22:23:38.843][12][critical][backtrace] [./source/server/backtrace.h:104] Caught Aborted, suspect faulting address 0x50e8d0000000c [2022-08-12 22:23:38.844][12][critical][backtrace] [./source/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers): [2022-08-12 22:23:38.844][12][critical][backtrace] [./source/server/backtrace.h:92] Envoy version: 0/1.24.0-dev/test/DEBUG/BoringSSL [2022-08-12 22:23:38.858][12][critical][backtrace] [./source/server/backtrace.h:96] #0: Envoy::SignalAction::sigHandler() [0x3480b28] [2022-08-12 22:23:38.858][12][critical][backtrace] [./source/server/backtrace.h:96] #1: __restore_rt [0x7f94b072c200] [2022-08-12 22:23:38.872][12][critical][backtrace] [./source/server/backtrace.h:96] #2: Envoy::Quic::EnvoyQuicStream::~EnvoyQuicStream() [0x2a2fe98] [2022-08-12 22:23:38.885][12][critical][backtrace] [./source/server/backtrace.h:96] #3: Envoy::Quic::EnvoyQuicServerStream::~EnvoyQuicServerStream() [0x2a78058] [2022-08-12 22:23:38.899][12][critical][backtrace] [./source/server/backtrace.h:96] #4: Envoy::Quic::EnvoyQuicServerStream::~EnvoyQuicServerStream() [0x2a77d30] [2022-08-12 22:23:38.912][12][critical][backtrace] [./source/server/backtrace.h:96] #5: Envoy::Quic::EnvoyQuicServerStream::~EnvoyQuicServerStream() [0x2a77d69] This change check stream close in this case, so that the idle timer will not be armed for closed streams. Risk Level: low Testing: new unit test Docs Changes: N/A Release Notes: N/A Platform Specific Features: N/A Signed-off-by: Dan Zhang <danzh@google.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Commit Message:
Add a field to the current protobuf of ScopedRouteConfiguration to distinguish between scopes of different priorities. If the route table is of high priority, load the scoped route configuration eagerly, otherwise load the scoped route configuration lazily.
The lazy loading feature of route table associated with scope is achieved by extending the current vhds on_demand filter to support lazy loading of RouteConfigurationscoped route discovery service.If a scoped route configuration is set to be loaded lazily, upon a http request using SRDS, when the corresponding route table of a scope is not found, post a callback to control plane, request the route table from the management server, after the route table has been initialized, continue the filter chain.
Additional Description: Design doc
Risk Level:
Testing: add unit tests and integration test to verifiy behavior changes
Docs Changes:
Release Notes:
[Optional Runtime guard:]
[Optional Fixes #Issue] on demand s/rds
[Optional Deprecated:]