client: Fix a bug where a ClientConn could get permanently stuck in IDLE when an RPC was canceled during stream creation. Previously, such cancellations triggered stream cleanup twice, corrupting the channel's idleness state and causing subsequent RPCs to fail with deadline exceeded errors. (#9191)
client: Fix a bug where non-gRPC HTTP responses ending with an empty DATA frame failed the RPC with status code Internal instead of preserving the HTTP-mapped status code and response body. (#9217)
credentials: Validate metadata returned by per-RPC credentials, failing the RPC with status code Internal if invalid keys or values are found. Previously, invalid metadata from credentials was sent to the server in outgoing HTTP/2 requests. (#9202)
credentials/sts: Prevent potential token leakage by disallowing HTTP redirects during STS token exchange. Previously, 3xx redirects were followed automatically, replaying the request body containing authentication tokens to the redirect destination. (#9299)
stats/otel: Ensure method names are populated in trace spans when metrics are disabled. Previously, running with tracing enabled and metrics disabled resulted in server trace spans lacking the RPC method name (recording only "Recv."). (#9262)
transport: Return io.ErrUnexpectedEOF when EOF is encountered after partial header or message body reads. Previously, partial reads could return a plain io.EOF, failing to distinguish truncated data from a clean end of stream. (#9204)
transport: Validate metadata supplied by balancers (in PickResult.Metadata) and resolver addresses, failing the RPC with status code Internal if invalid keys or values are found. Previously, invalid metadata from these sources was sent to the server in outgoing HTTP/2 requests. (#9203)
xds: Reject routes containing header matchers with empty prefix_match or suffix_match strings. Previously, this caused a panic during route matching. (#9223)
xds: Reject EDS resources containing drop policies with unsupported denominators. Previously, such resources caused the client to panic when calculating drop rates. (#9218)
xds/rbac: Reject RBAC configurations containing nested Principal or Permission rules with :scheme or grpc- prefixed header matchers. Previously, such configurations could cause DENY policies to fail open. (#9258)
xds/rbac: Rewrite host header matchers to :authority in nested Principal and Permission rules. Previously, this rewrite only applied to top-level rules, causing nested host matchers to never match incoming requests and DENY policies to fail open. (#9258)
xds/rbac: Reject CidrRanges with an unset prefix length. Previously, an omitted prefix_len field caused a panic during RBAC configuration parsing. (#9250)
credentials/alts: Support dynamic frame size negotiation and add the GRPC_GO_EXPERIMENTAL_ALTS_MAX_FRAME_SIZE environment variable (default 4KiB, max 512KiB) to configure the maximum ALTS record frame size. (#9268)
Configuration
📅Schedule: (UTC)
Branch creation
At any time (no schedule defined)
Automerge
At any time (no schedule defined)
🚦Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [google.golang.org/grpc](https://github.com/grpc/grpc-go) | `v1.83.2` → `v1.84.0` |  |  |
---
### Release Notes
<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>
### [`v1.84.0`](https://github.com/grpc/grpc-go/releases/tag/v1.84.0): Release 1.84.0
[Compare Source](https://github.com/grpc/grpc-go/compare/v1.83.2...v1.84.0)
### Behavior Changes
- stats/otel: The `grpc.lb.pick_first.*` metrics have been removed and replaced with `grpc.subchannel.*` metrics. See [gRFC A94](https://github.com/grpc/proposal/blob/master/A94-subchannel-otel-metrics.md) for more details. ([#​9215](https://github.com/grpc/grpc-go/issues/9215))
### New Features
- xds: Add support for `contains_match` in route header matchers. ([#​9223](https://github.com/grpc/grpc-go/issues/9223))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
### Bug Fixes
- client: Fix a bug where a `ClientConn` could get permanently stuck in IDLE when an RPC was canceled during stream creation. Previously, such cancellations triggered stream cleanup twice, corrupting the channel's idleness state and causing subsequent RPCs to fail with deadline exceeded errors. ([#​9191](https://github.com/grpc/grpc-go/issues/9191))
- Special Thanks: [@​utkuozdemir](https://github.com/utkuozdemir)
- client: Fix a bug where non-gRPC HTTP responses ending with an empty DATA frame failed the RPC with status code `Internal` instead of preserving the HTTP-mapped status code and response body. ([#​9217](https://github.com/grpc/grpc-go/issues/9217))
- Special Thanks: [@​chengxilo](https://github.com/chengxilo)
- credentials: Validate metadata returned by per-RPC credentials, failing the RPC with status code `Internal` if invalid keys or values are found. Previously, invalid metadata from credentials was sent to the server in outgoing HTTP/2 requests. ([#​9202](https://github.com/grpc/grpc-go/issues/9202))
- Special Thanks: [@​buger](https://github.com/buger)
- credentials/sts: Prevent potential token leakage by disallowing HTTP redirects during STS token exchange. Previously, 3xx redirects were followed automatically, replaying the request body containing authentication tokens to the redirect destination. ([#​9299](https://github.com/grpc/grpc-go/issues/9299))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- randomsubsetting: Ignore endpoints that contain no addresses. Previously, this could cause the policy to panic while computing hashes. ([#​9259](https://github.com/grpc/grpc-go/issues/9259))
- Special Thanks: [@​fallintoplace](https://github.com/fallintoplace)
- stats/otel: Ensure method names are populated in trace spans when metrics are disabled. Previously, running with tracing enabled and metrics disabled resulted in server trace spans lacking the RPC method name (recording only "Recv."). ([#​9262](https://github.com/grpc/grpc-go/issues/9262))
- transport: Return `io.ErrUnexpectedEOF` when EOF is encountered after partial header or message body reads. Previously, partial reads could return a plain `io.EOF`, failing to distinguish truncated data from a clean end of stream. ([#​9204](https://github.com/grpc/grpc-go/issues/9204))
- Special Thanks: [@​buger](https://github.com/buger)
- transport: Validate metadata supplied by balancers (in `PickResult.Metadata`) and resolver addresses, failing the RPC with status code `Internal` if invalid keys or values are found. Previously, invalid metadata from these sources was sent to the server in outgoing HTTP/2 requests. ([#​9203](https://github.com/grpc/grpc-go/issues/9203))
- Special Thanks: [@​buger](https://github.com/buger)
- xds: Fix a rare corner case that could prevent a cluster from being removed when it is no longer in use. ([#​9140](https://github.com/grpc/grpc-go/issues/9140))
- xds: Fix panic during route matching for routes containing header matchers with empty `exact_match` strings. ([#​9223](https://github.com/grpc/grpc-go/issues/9223))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- xds: Reject routes containing header matchers with empty `prefix_match` or `suffix_match` strings. Previously, this caused a panic during route matching. ([#​9223](https://github.com/grpc/grpc-go/issues/9223))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- xds: Fix EDS drop policies being applied at a much lower rate than configured due to an integer overflow. ([#​9257](https://github.com/grpc/grpc-go/issues/9257))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- xds: Reject EDS resources containing drop policies with unsupported denominators. Previously, such resources caused the client to panic when calculating drop rates. ([#​9218](https://github.com/grpc/grpc-go/issues/9218))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- xds/rbac: Reject RBAC configurations containing nested `Principal` or `Permission` rules with `:scheme` or `grpc-` prefixed header matchers. Previously, such configurations could cause DENY policies to fail open. ([#​9258](https://github.com/grpc/grpc-go/issues/9258))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- xds/rbac: Rewrite `host` header matchers to `:authority` in nested `Principal` and `Permission` rules. Previously, this rewrite only applied to top-level rules, causing nested `host` matchers to never match incoming requests and DENY policies to fail open. ([#​9258](https://github.com/grpc/grpc-go/issues/9258))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
- xds/rbac: Reject `CidrRanges` with an unset prefix length. Previously, an omitted `prefix_len` field caused a panic during RBAC configuration parsing. ([#​9250](https://github.com/grpc/grpc-go/issues/9250))
- Special Thanks: [@​nvxbug](https://github.com/nvxbug)
### Performance Improvements
- transport: Avoid a heap allocation when flushing shared write buffers. ([#​9233](https://github.com/grpc/grpc-go/issues/9233))
- Special Thanks: [@​zaidoon1](https://github.com/zaidoon1)
- credentials/alts: Support dynamic frame size negotiation and add the `GRPC_GO_EXPERIMENTAL_ALTS_MAX_FRAME_SIZE` environment variable (default 4KiB, max 512KiB) to configure the maximum ALTS record frame size. ([#​9268](https://github.com/grpc/grpc-go/issues/9268))
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC45Ny40IiwidXBkYXRlZEluVmVyIjoiNDQuOTcuNCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhdXRvbWF0ZWQiLCJkZXBlbmRlbmNpZXMiXX0=-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v1.83.2→v1.84.0Release Notes
grpc/grpc-go (google.golang.org/grpc)
v1.84.0: Release 1.84.0Compare Source
Behavior Changes
grpc.lb.pick_first.*metrics have been removed and replaced withgrpc.subchannel.*metrics. See gRFC A94 for more details. (#9215)New Features
contains_matchin route header matchers. (#9223)Bug Fixes
ClientConncould get permanently stuck in IDLE when an RPC was canceled during stream creation. Previously, such cancellations triggered stream cleanup twice, corrupting the channel's idleness state and causing subsequent RPCs to fail with deadline exceeded errors. (#9191)Internalinstead of preserving the HTTP-mapped status code and response body. (#9217)Internalif invalid keys or values are found. Previously, invalid metadata from credentials was sent to the server in outgoing HTTP/2 requests. (#9202)io.ErrUnexpectedEOFwhen EOF is encountered after partial header or message body reads. Previously, partial reads could return a plainio.EOF, failing to distinguish truncated data from a clean end of stream. (#9204)PickResult.Metadata) and resolver addresses, failing the RPC with status codeInternalif invalid keys or values are found. Previously, invalid metadata from these sources was sent to the server in outgoing HTTP/2 requests. (#9203)exact_matchstrings. (#9223)prefix_matchorsuffix_matchstrings. Previously, this caused a panic during route matching. (#9223)PrincipalorPermissionrules with:schemeorgrpc-prefixed header matchers. Previously, such configurations could cause DENY policies to fail open. (#9258)hostheader matchers to:authorityin nestedPrincipalandPermissionrules. Previously, this rewrite only applied to top-level rules, causing nestedhostmatchers to never match incoming requests and DENY policies to fail open. (#9258)CidrRangeswith an unset prefix length. Previously, an omittedprefix_lenfield caused a panic during RBAC configuration parsing. (#9250)Performance Improvements
GRPC_GO_EXPERIMENTAL_ALTS_MAX_FRAME_SIZEenvironment variable (default 4KiB, max 512KiB) to configure the maximum ALTS record frame size. (#9268)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.