Skip to content

conn_pool: add upstream_rq_active_overflow to distinguish max_requests CB from max_pending_requests CB#18

Closed
fl0Lec wants to merge 2276 commits into
mainfrom
fl/feg-2433-upstream-rq-active-overflow
Closed

conn_pool: add upstream_rq_active_overflow to distinguish max_requests CB from max_pending_requests CB#18
fl0Lec wants to merge 2276 commits into
mainfrom
fl/feg-2433-upstream-rq-active-overflow

Conversation

@fl0Lec
Copy link
Copy Markdown

@fl0Lec fl0Lec commented Mar 30, 2026

Summary

Fixes a misleading metric: upstream_rq_pending_overflow was incremented in two distinct failure modes inside conn_pool_base.cc:

  1. Pending queue full (newStreamImplpendingRequests().canCreate() returns false) — request rejected before queuing
  2. Max active requests exceeded (attachStreamToClientrequests().canCreate() returns false) — request rejected while being attached to a ready upstream connection

Path 2 is not a pending overflow at all. This made the metric ambiguous and actively misleading during incident investigations (high overflow with near-zero pending active).

Changes

  • Added upstream_rq_active_overflow counter to ClusterTrafficStats (envoy/upstream/upstream.h)
  • attachStreamToClient() now increments upstream_rq_active_overflow for the max_requests path (source/common/conn_pool/conn_pool_base.cc)
  • Runtime flag envoy.reloadable_features.upstream_rq_active_overflow_counter (default true) — when false, both counters fire (legacy behavior)
  • Runtime guard registered in source/common/runtime/runtime_features.cc

Backward compatibility

With the runtime flag defaulting to true, only upstream_rq_active_overflow fires for the max_requests path and upstream_rq_pending_overflow becomes exclusive to the pending queue path. Set the flag to false to restore legacy behavior (both counters fire).

Tests

  • 2 new unit tests in test/common/conn_pool/conn_pool_base_test.cc (MaxActiveRequestsOverflow, MaxActiveRequestsOverflowLegacy)
  • 3 integration tests in test/integration/circuit_breakers_integration_test.cc updated to assert upstream_rq_active_overflow == 1 and upstream_rq_pending_overflow == 0

Docs & Changelog

  • docs/root/configuration/upstream/cluster_manager/cluster_stats.rst: new stat row added
  • docs/root/intro/arch_overview/upstream/circuit_breaking.rst: max_requests section updated
  • changelogs/current.yaml: bug_fix entry added

Jira: FEG-2433

dependabot Bot and others added 30 commits February 27, 2026 15:52
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.1 to 10.2.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](actions/stale@9971854...b5d41d4)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit e25df71)
Bumps [github.com/envoyproxy/go-control-plane/envoy](https://github.com/envoyproxy/go-control-plane) from 1.36.0 to 1.37.0.
- [Release notes](https://github.com/envoyproxy/go-control-plane/releases)
- [Changelog](https://github.com/envoyproxy/go-control-plane/blob/main/CHANGELOG.md)
- [Commits](envoyproxy/go-control-plane@envoy/v1.36.0...envoy/v1.37.0)

---
updated-dependencies:
- dependency-name: github.com/envoyproxy/go-control-plane/envoy
  dependency-version: 1.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 892268d)
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.8.2 to 4.8.3.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](actions/dependency-review-action@3c4e3dc...05fe457)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-version: 4.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 85de030)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.0 to 4.32.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@b20883b...89a39a4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 3aeab26)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.3 to 8.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4.1.3...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 44689b2)
Bumps [setuptools](https://github.com/pypa/setuptools) from 80.10.2 to 82.0.0.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v80.10.2...v82.0.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 82.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 2a64eed)
Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 6.33.5 to 7.34.0.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-version: 7.34.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit dcb5c40)
Bumps [slack-sdk](https://github.com/slackapi/python-slack-sdk) from 3.39.0 to 3.40.1.
- [Release notes](https://github.com/slackapi/python-slack-sdk/releases)
- [Commits](slackapi/python-slack-sdk@v3.39.0...v3.40.1)

---
updated-dependencies:
- dependency-name: slack-sdk
  dependency-version: 3.40.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 3474773)
Bumps [icalendar](https://github.com/collective/icalendar) from 6.3.2 to 7.0.2.
- [Release notes](https://github.com/collective/icalendar/releases)
- [Changelog](https://github.com/collective/icalendar/blob/main/CHANGES.rst)
- [Commits](collective/icalendar@v6.3.2...v7.0.2)

---
updated-dependencies:
- dependency-name: icalendar
  dependency-version: 7.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit efa0d24)
tested wf breakout from envoyproxy#43605 

renames wfs for consistency (android tests etc are soon going to be
~merged into Mobile/Android eg)

Signed-off-by: Ryan Northey <ryan@synca.io>
)

Signed-off-by: Greg Greenway <ggreenway@apple.com>
…nvoyproxy#43575)

<!--
!!!ATTENTION!!!

If you are fixing *any* crash or *any* potential security issue, *do
not*
open a pull request in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged
appropriately.
Thank you in advance for helping to keep Envoy secure.

!!!ATTENTION!!!

For an explanation of how to fill out the fields, please see the
relevant section
in
[PULL_REQUESTS.md](https://github.com/envoyproxy/envoy/blob/main/PULL_REQUESTS.md)

!!!ATTENTION!!!

Please check the [use of generative AI
policy](https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md?plain=1#L41).

You may use generative AI only if you fully understand the code. You
need to disclose
this usage in the PR description to ensure transparency.
-->

Commit Message: mcp: Support session negotiation in McpJsonRestBridge
HTTP filter.
Additional Description: Handle initialized, notification initialize
Risk Level: Medium
Testing: unit test
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional [API
Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

API submitted in envoyproxy#43400

---------

Signed-off-by: Yilin Guo <guoyilin@google.com>
Commit Message: dym skd: add on destory event hook
Additional Description:

Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional [API
Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
…ig (envoyproxy#43522)

Commit Message: watch-dog: fix worker-thread watch-dog threads using
main-thread config
Additional Description:
In PR envoyproxy#30896 the watchdog instantiation was refactored, and a bug was
introduced where both the main thread's and the worker threads'
watch-dogs are configured [using the main-thread's
config](https://github.com/envoyproxy/envoy/pull/30896/changes#diff-a39ff317d26d008f20bca53f5e3f4e171d169a5702f82409ca941bddaac46064L781-L784).
This PR fixes the issue by passing the correct configuration.

Risk Level: Medium - may change the behavior of systems where
worker-threads' watch-dogs will trigger.

Testing: Added unit and integration tests.
Docs Changes: N/A
Release Notes: Added.
Platform Specific Features: N/A
Runtime guard: Added
`envoy.restart_features.worker_threads_watchdog_fix` that can
temporarily disable the fix.

---------

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
…nvoyproxy#43392)

### Description:
PR envoyproxy#33192 refactored SRDS to use a `SrdsFactory` interface for
decoupling, but inadvertently changed the `init_manager` passed to
`ScopedRoutesConfigProviderUtil::create()` from the listener-level
init_manager to the server-level init_manager. When a listener with SRDS
arrives via LDS after the server init_manager has already reached the
`Initialized` state, the SRDS init target is silently discarded in
release builds, and the SRDS subscription never starts.

The fix adds an `Init::Manager&` parameter to
`SrdsFactory::createConfigProvider()` and passes the listener's
init_manager from the HCM config constructor, restoring the correct
behavior that existed before PR envoyproxy#33192 and matching how RDS handles
init_manager propagation.

AI-assisted: Claude opus-4.6 was used to help write the unit test and PR
description. The fix itself and root cause analysis were done manually.

### Risk Level: Low
### Testing:
  - `//test/common/router:scoped_rds_test` PASSED
-
`//test/extensions/filters/network/http_connection_manager:config_test`
PASSED
  - `//test/integration:scoped_rds_integration_test` PASSED
  - Higress kind cluster integration test with Delta xDS + SRDS PASSED
### Docs Changes: N/A
### Release Notes: N/A
### Platform Specific Features: N/A

---------

Signed-off-by: jingze <daijingze.djz@alibaba-inc.com>
Signed-off-by: Jingze <52855280+Jing-ze@users.noreply.github.com>
Commit Message:
This future-proofs Envoy and is needed to keep it building with later
versions of BoringSSL. BoringSSL plans to const-correct these APIs and
making ASN1_STRING opaque, in order to unblock some memory usage
improvements in X509.

See also http://github.com/envoyproxy/envoy/pull/41022 for more details.

This PR has no behavior change. It is purely to fix some const issues in
Envoy.
Additional Description:
Risk Level: none
Testing: CI checks it compiles
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

Signed-off-by: David Benjamin <davidben@google.com>
Follow up on envoyproxy#43673

Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
adding downstreamSslConnection to have 1:1 matching with Lua features

Commit Message: adding downstreamSslConnection to have 1:1 matching with
Lua features
Additional Description:
Risk Level: Low
Testing: Integration test
Docs Changes: No
Release Notes: Yes
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional [API
Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

---------

Signed-off-by: Florent Lecoultre <florent.lecoultre@datadoghq.com>
…st (envoyproxy#43691)

Commit Message: use a common test setup function in
ext_authz_http_impl_test.cc
Additional Description: `std::make_shared()` is often marked
`[[nodiscard]]`, so using it as a statement without checking its value
may lead to compilation warnings. `createConfig()` is already present
and conveniently does the right things, so we may as well use it.
Risk Level: none
Testing: ran the test being modified
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

Signed-off-by: Eugene Chan <eugenechan@google.com>
…ommands (envoyproxy#42915)

Fixes: envoyproxy#43396

Commit Message: grpc access logs: include passed in command parsers when
validating commands
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:

Fixes listener initializing errors when using custom tag substitution
for dns filter logs.

> delta config for type.googleapis.com/envoy.config.listener.v3.Listener
rejected: Error adding/updating listener(s) listener: Not supported
field in StreamInfo: QUERY_NAME

---------

Signed-off-by: Anton Kanugalawattage <antondilon@gmail.com>
Co-authored-by: Wesley Hung <whung@palantir.com>
…envoyproxy#43701)

Commit Message: dym: improve the stream callout to handle the reset on
initialization
Additional Description:

In the previous implementation, the reset on initialization will be
propagate to module by event hook and the status of `startHttpStream`
will be `Success`.

In the new implementation, all failures on initialization will not
trigger the event hook but will result in error status of
`startHttpStream`.

The failure on initialization is very tricky and hard to process in
practice of Envoy extension. It's hard to change current implementation
of Envoy because it's used everywhere, but we still have chance to make
the better usability for dynamic module.

Risk Level: low.
Testing: unit.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
…connection IDs attempted (envoyproxy#43215)

Adds new access log formatters to track all
upstream hosts and connection IDs attempted during request processing:

- `%UPSTREAM_HOSTS_ATTEMPTED%` - Comma-separated list of upstream host
addresses (ip:port)
- `%UPSTREAM_HOSTS_ATTEMPTED_WITHOUT_PORT%` - Upstream host addresses
without port
- `%UPSTREAM_HOST_NAMES_ATTEMPTED%` - Upstream host names
- `%UPSTREAM_HOST_NAMES_ATTEMPTED_WITHOUT_PORT%` - Upstream host names
without port
- `%UPSTREAM_CONNECTION_IDS_ATTEMPTED%` - Connection IDs used during
request processing

Extended `StreamInfo::UpstreamInfo` interface with methods to track
attempted hosts and connection IDs. Implemented tracking in HTTP router,
TCP proxy, and UDP proxy.

__Risk Level:__ Low

__Testing:__ Unit tests added for all new formatters. Mocks updated for
new interface methods.

__Docs Changes:__ Updated
`docs/root/configuration/advanced/substitution_formatter.rst` with
documentation for all new formatters.

__Release Notes:__ Added entry in `changelogs/current.yaml`.

__Platform Specific Features:__ N/A

---------

Signed-off-by: Issa Abu Kalbein <iabukalbein@microsoft.com>
Signed-off-by: Issa Abu Kalbein <86603440+IssaAbuKalbein@users.noreply.github.com>
Co-authored-by: Issa Abu Kalbein <iabukalbein@microsoft.com>
…oxy#43614)

<!--
!!!ATTENTION!!!

If you are fixing *any* crash or *any* potential security issue, *do
not*
open a pull request in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged
appropriately.
Thank you in advance for helping to keep Envoy secure.

!!!ATTENTION!!!

For an explanation of how to fill out the fields, please see the
relevant section
in
[PULL_REQUESTS.md](https://github.com/envoyproxy/envoy/blob/main/PULL_REQUESTS.md)

!!!ATTENTION!!!

Please check the [use of generative AI
policy](https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md?plain=1#L41).

You may use generative AI only if you fully understand the code. You
need to disclose
this usage in the PR description to ensure transparency.
-->

Commit Message: Tenant ID from reverse tunnel handshake validation
support added in upstream reverse tunnel.
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional [API
Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

---------

Signed-off-by: Krishna Sharma <krishnagpl2001@gmail.com>
…37 behavior under Protobuf 30+) (envoyproxy#43508)

Commit Message:

Envoy 1.37.0 updated protobuf from 29.3 to 33.2. That dependency change
altered debug-string output semantics and broke behavior that worked in
1.36.x for ext_proc consumers parsing `xds.virtual_host_metadata`.

This behavior change was introduced in envoyproxy#42435 and envoyproxy#42827.

This PR switches message serialization from debug-string APIs to
protobuf text-format APIs so message-valued CEL attributes are
machine-parseable again, as recommended by protobuf programming guides.
https://protobuf.dev/programming-guides/deserialize-debug

 **What broke in 1.37.0**

- In both 1.36.x and 1.37.0, message-valued CEL results were stringified
via ShortDebugString().
  - In 1.36.x (protobuf 29.3), that output was parseable.
- In 1.37.0 (protobuf 33.2), debug strings are now prefixed with
`goo.gle/debugonly` / `goo.gle/debugstr`, which is intentionally
non-parseable as textproto.
- Result: ext_proc implementations that parse
`xds.virtual_host_metadata` as textproto started failing after upgrading
to 1.37.0.
  
**Note**: xds metadata attributes in ext_proc requests are **not
diagnostic log fields**; they are machine-to-machine payload data
consumed by external processors. External processors parse these values
to make policy and routing decisions, so serialization must be stable
and machine-readable by standard protobuf tooling. `DebugString` is a
diagnostic format with no compatibility contract, and in protobuf 30+ it
may include `goo.gle/debug...` prefixes that intentionally break
parsing. For this path, protobuf `TextFormat` is the correct format, not
debug serialization.


**Example**

  Given virtual host metadata:

```yaml
  {
    "metadata": {
      "filterMetadata": {
        "envoy-gateway": {
          "resources": [
            {
              "kind": "Gateway",
              "name": "eg",
              "namespace": "default",
              "sectionName": "http"
            }
          ]
        }
      }
    }
  }
 ```

  Before (1.37.0 + protobuf 30+ path), ext_proc may receive:

`goo.gle/debugonly  filter_metadata { key: "envoy-gateway" value { ... } }`

  Parsing fails at token 1.

  After this PR:

`filter_metadata { key: "envoy-gateway" value { ... } }`

This is protobuf text format and parses via TextFormat::ParseFromString(...).

**Compatibility notes**

  - This restores 1.36.x-like effective behavior for ext_proc users (parseable metadata strings), while using the correct serialization API.
  - Minor formatting differences vs 1.36.x debug output are possible (whitespace/order), but output is now stable machine-readable textproto.
  - Scope includes other call sites using Expr::print(...) for message-valued CEL results (for example rate-limit descriptor CEL stringification).
  
Additional Description:
Risk Level: low
Testing: unit and integration test
Docs Changes:
Release Notes: yes
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit envoyproxy#43466]
[Optional Deprecated:]
[Optional [API Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

---------

Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
…th buffered body (envoyproxy#43663)

Commit Message: dym module: new ABI to check whether the new received
body is same with buffered body
Additional Description:

With the ABI, we needn't to check the buffer chunks to determine whether
the received body is same with the buffered body.

Risk Level: low.
Testing: unit.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

---------

Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
…addresses (envoyproxy#43653)

Commit Message: Hot restart socket handoff fails when a listener has
`network_namespace_filepath` configured. The `PassListenSocket` request
only carries the address string (e.g. `tcp://0.0.0.0:80`), the network
namespace is lost. On the parent side, `resolveUrl` produces an address
with `networkNamespace() == nullopt`, which never matches the listener's
namespaced address (since `operator==` checks namespace equality). The
result is `fd == -1`, the child falls back to binding a new socket,
breaking handoff.

This PR fixes it by passing the network namespace hot restart socket
handoff path in child and parent handling.

Risk Level: Low, only affects listeners with
`network_namespace_filepath` set, which were already broken during hot
restart.

Testing: Updated and added unit tests in `hot_restarting_parent_test.cc`
covering namespace match, mismatch, and mixed (namespace vs
no-namespace) cases.
Docs Changes: Updated Changelog
Release Notes: NA
Platform Specific Features: NA

---------

Signed-off-by: Ronak Jain <ronakjainc@gmail.com>
…nvoyproxy#43697)

Fixes a crash introduced by envoyproxy#43346. 
When a thread-aware load balancer is initialized mid-batch, the
per-priority panic tracking vectors have not been resized yet because
the batch member update callback hasn't fired. This causes an
out-of-bounds read during the LB refresh loop.

1. Process any dirty priorities to properly size vectors if the load
balancer is initialized mid-batch.
2. Add a bounds check `ASSERT` to prevent silent out-of-bounds bit
vector reads.
3. Add an initialization regression test to prevent this pattern from
breaking in the future.

Commit Message:
Additional Description:
Risk Level: low (already guarded by
`envoy.reloadable_features.coalesce_lb_rebuilds_on_batch_update`).
Testing:
Docs Changes:
Release Notes:

Signed-off-by: Boteng Yao <boteng@google.com>
)

Commit Message: dynamic_modules: support for statically linked modules
Additional Description:

This commit allows statically linked dynamic modules though in that case
it is not really a "dynamic". This allows downstream users who build
their own Envoy binary to statically link their modules using bazel
natively. This will also set the foundation for our discussed direction
of the project: allowing new core extensions written as a dynamic
module.

The idea is that these statically linked modules must prefix Envoy->DM
callbacks (envoy_dynamic_module_on_*) with their own module names, and
at the dynamic_modules loading phase, Envoy try to find the init symbol
like foo_envoy_dynamic_module_on_init. If found, it is a statically
linked module, and otherwise it will try to load the shared library
normally.

Since this functionality is very low-level and not available for normal
end users (i.e. anyone using official binaries), i intentionally did not
add the release note.

Risk Level: low
Testing: done
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features:

---------

Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
…43648)

Commit Message: sds: reduce copy of a structure by returning a const-ref
Additional Description:
Internal refactor to return a const-ref instead of a copy in the
`secretData()` method.

Risk Level: low - internal change
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
wbpcode and others added 27 commits March 25, 2026 19:48
…fo() (envoyproxy#44068)

Commit Message: http: prefer to return reference rather than shared ptr
for clusterInfo()
Additional Description:

See envoyproxy#44025 for more detail.

Risk Level: low.
Testing: n/a.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

---------

Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
…hain (envoyproxy#44034)

Adding some debug logs when inject data into filter chain

---------

Signed-off-by: Yanjun Xiang <yanjunxiang@google.com>
…voyproxy#43315)

Signed-off-by: nick <nickshokri@google.com>
Signed-off-by: Kuat <kyessenov@users.noreply.github.com>
Co-authored-by: Kuat <kyessenov@users.noreply.github.com>
<!--
!!!ATTENTION!!!

If you are fixing *any* crash or *any* potential security issue, *do
not*
open a pull request in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged
appropriately.
Thank you in advance for helping to keep Envoy secure.

!!!ATTENTION!!!

For an explanation of how to fill out the fields, please see the
relevant section
in
[PULL_REQUESTS.md](https://github.com/envoyproxy/envoy/blob/main/PULL_REQUESTS.md)

!!!ATTENTION!!!

Please check the [use of generative AI
policy](https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md?plain=1#L41).

You may use generative AI only if you fully understand the code. You
need to disclose
this usage in the PR description to ensure transparency.
-->

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional [API
Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

---------

Signed-off-by: tyxia <tyxia@google.com>
…43647)

## Description

---

**Commit Message:** dynamic_modules: add generic accessors for access
logger
**Additional Description:**
**Risk Level:** Low
**Testing:** CI
**Docs Changes:** Added
**Release Notes:** N/A

---------

Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
…ompressing (envoyproxy#43755)

**Commit Message:**
compressor: add weaken_etag_on_compress to weaken strong ETags when
compressing

**Additional Description:**
Adds a new option ``weaken_etag_on_compress`` to the compressor filter's
``response_direction_config``. When enabled, strong ``ETag`` response
headers
are weakened by prepending ``W/`` to the value (e.g. ``"abc123"``
becomes
``W/"abc123"``) instead of being removed when compression is applied.
Weak
ETags (already starting with ``W/``) are left unchanged.

This allows caches and conditional requests to keep working while
indicating
that the representation was modified by compression, matching behavior
used in
other proxies (e.g. Varnish). The default remains ``false``, preserving
existing behavior (strong ETags are removed when compressing).

Fixes envoyproxy#35152

Signed-off-by: Rafael Antunes <rafael.gaspar@me.com>
…proxy#44106)

It was removed somewhere between 1.18 and 1.19.

Signed-off-by: Ian Kerins <git@isk.haus>
)

Commit Message:  dym: make metrics ID inner field publish for test/debug
Additional Description:

Otherwise, we cannot mock the logic with the metrics ID without using
transmute unsage stuff

Risk Level: n/a
Testing: n/a
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
…nvoyproxy#43938)

Commit Message: stream info: return reference rather than copy of shared
pointer
Additional Description:

See envoyproxy#44025

This pr update previous `route()` as `routeSharedPtr()` and add a new
`route()` which will return `OptRef<const Route>`.

Risk Level: low.
Testing: n/a.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

---------

Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
Commit Message: Add enriching metadata for HDS response
Additional Description:

This adds a new field to store metadata in HDS response where we can
serve more rich information back to the control plane. Currently, only
HealthStatus is provided to the endpoint status

Risk Level: low
Testing: done
Docs Changes: done in API
Release Notes: 
Platform Specific Features:  n/a

---------

Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
…y#44026)

Commit Message: xds: update trace log to only print non-nullptr
exceptions
Additional Description:
Upon an xDS-error, trace-logs output the exception details. However
there are a few cases where an exception is created with nullptr passed.
This PR introduces defensive coding in the cases where the exception
details are printed out to the trace logs.

Risk Level: low - only trace-logs are impacted
Testing: Added unit test to avoid regression in this case.
Docs Changes: N/A
Release Notes: N/A - not user facing (trace logs)
Platform Specific Features: N/A

---------

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
Commit Message: dym: make EnvoyBuffer easier to use in test
Additional Description:
Risk Level: none (only impacts unit tests with mocks)
Testing: done
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

---------

Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
<!--
!!!ATTENTION!!!

If you are fixing *any* crash or *any* potential security issue, *do
not*
open a pull request in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged
appropriately.
Thank you in advance for helping to keep Envoy secure.

!!!ATTENTION!!!

For an explanation of how to fill out the fields, please see the
relevant section
in
[PULL_REQUESTS.md](https://github.com/envoyproxy/envoy/blob/main/PULL_REQUESTS.md)

!!!ATTENTION!!!

Please check the [use of generative AI
policy](https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md?plain=1#L41).

You may use generative AI only if you fully understand the code. You
need to disclose
this usage in the PR description to ensure transparency.
-->

Commit Message: refactor: upstream host override struct
Additional Description: Refactor is required for a subsequent change
proposed to add a status to return if strict destination is missing.
Risk Level: Low (internal refactor)
Testing: Unit tests
Docs Changes: No
Release Notes: No
Related envoyproxy#42686

---------

Signed-off-by: Rudrakh Panigrahi <rudrakh97@gmail.com>
Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
…oxy#44143)

Signed-off-by: Hossein Sokhandan <iamsokhandan@gmail.com>
Commit Message: config_dump: use new clusters iterator
Additional Description:
Prior to this PR the config dump created a temp map data-structure, and
iterated over that.
In envoyproxy#44015 a new iterator was introduced in the cluster-manager to
iterate over the active-clusters. This PR uses the new iterator to
achieve the same result.

Risk Level: low - no external impact.
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
## Description

This PR adds a new Dynamic Modules extension for Tracing.

---

**Commit Message:** dynamic_modules: add a new extension for tracing
**Additional Description:** Added a new Dynamic Modules extension for
Tracing.
**Risk Level:** Low
**Testing:** Added Tests
**Docs Changes:** Added
**Release Notes:** Added

---------

Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
…#44113)

Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…roxy#44078)

Commit Message: stream info: prefer reference rather than shared pointer
for route()
Additional Description:

See new style envoyproxy#44025 for more detail

Risk Level: n/a.
Testing: n/a.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

---------

Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
Signed-off-by: code <wbphub@gmail.com>
)

<!--
!!!ATTENTION!!!

If you are fixing *any* crash or *any* potential security issue, *do
not*
open a pull request in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged
appropriately.
Thank you in advance for helping to keep Envoy secure.

!!!ATTENTION!!!

For an explanation of how to fill out the fields, please see the
relevant section
in
[PULL_REQUESTS.md](https://github.com/envoyproxy/envoy/blob/main/PULL_REQUESTS.md)

!!!ATTENTION!!!

Please check the [use of generative AI
policy](https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md?plain=1#L41).

You may use generative AI only if you fully understand the code. You
need to disclose
this usage in the PR description to ensure transparency.
-->

**Commit Message:** dynamic_modules: add nack_on_cache_miss for remote
module sources

**Additional Description:**

This PR adds support for nacking a configuration if the dynamic module
is not fetched and start a background fetch. The module may become
available in the next config push and ready to use from cache.

Entries are keyed by sha256 so that multiple listeners can use the same
fetch. The cache lives inside the factory and is safe to be used across
listeners. Completed entries are cleaned up on the next
`createFilterFactory()` and not during a fetch callback. So that the
`RemoteDataFetcher` is not destroyed mid-fetch.

**Risk Leve**l: Low
**Testing:** Unit tests added. Manually validated
**Docs Changes**: Proto changes included
**Release Notes:** Added

[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional [API
Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):]

---------

Signed-off-by: Anurag Aggarwal <kanurag94@gmail.com>
…verflow from max_pending_requests overflow

In attachStreamToClient(), when the max_requests circuit breaker is exhausted
the new upstream_rq_active_overflow counter is incremented instead of
upstream_rq_pending_overflow. This makes the two circuit breakers observable
via distinct metrics. The old behavior (both counters fire) is preserved
when runtime flag envoy.reloadable_features.upstream_rq_active_overflow_counter
is set to false.

FEG-2433
@fl0Lec fl0Lec force-pushed the fl/feg-2433-upstream-rq-active-overflow branch from 26d6af4 to 9d3a8cb Compare March 30, 2026 11:53
@fl0Lec fl0Lec changed the base branch from master to main March 30, 2026 11:53
@fl0Lec fl0Lec closed this Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.