mem: Replace the Reader interface with a struct for better performance and maintainability. (#8669)
Behavior Changes
balancer/pickfirst: Remove support for the old pick_first LB policy via the environment variable GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST=false. The new pick_first has been the default since v1.71.0. (#8672)
Bug Fixes
xdsclient: Fix a race condition in the ADS stream implementation that could result in resource-not-found errors, causing the gRPC client channel to move to TransientFailure. (#8605)
client: Ignore HTTP status header for gRPC streams. (#8548)
client: Set a read deadline when closing a transport to prevent it from blocking indefinitely on a broken connection. (#8534)
client: Fix a bug where default port 443 was not automatically added to addresses without a specified port when sent to a proxy.
Setting environment variable GRPC_EXPERIMENTAL_ENABLE_DEFAULT_PORT_FOR_PROXY_TARGET=false disables this change; please file a bug if any problems are encountered as we will remove this option soon. (#8613)
balancer/pickfirst: Fix a bug where duplicate addresses were not being ignored as intended. (#8611)
server: Fix a bug that caused overcounting of channelz metrics for successful and failed streams. (#8573)
balancer/pickfirst: When configured, shuffle addresses in resolver updates that lack endpoints. Since gRPC automatically adds endpoints to resolver updates, this bug only affects custom LB policies that delegate to pick_first but don't set endpoints. (#8610)
mem: Clear large buffers before re-using. (#8670)
Performance Improvements
transport: Reduce heap allocations to reduce time spent in garbage collection. (#8624, #8630, #8639, #8668)
transport: Avoid copies when reading and writing Data frames. (#8657, #8667)
stats/opentelemetry: Add support for optional label grpc.lb.backend_service in per-call metrics (#8637)
xds: Add support for JWT Call Credentials as specified in gRFC A97. Set environment variable GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS=true to enable this feature. (#8536)
This MR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [google.golang.org/grpc](https://github.com/grpc/grpc-go) | `v1.76.0` -> `v1.77.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>
### [`v1.77.0`](https://github.com/grpc/grpc-go/releases/tag/v1.77.0): Release 1.77.0
[Compare Source](https://github.com/grpc/grpc-go/compare/v1.76.0...v1.77.0)
### API Changes
- mem: Replace the `Reader` interface with a struct for better performance and maintainability. ([#​8669](https://github.com/grpc/grpc-go/issues/8669))
### Behavior Changes
- balancer/pickfirst: Remove support for the old `pick_first` LB policy via the environment variable `GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST=false`. The new `pick_first` has been the default since `v1.71.0`. ([#​8672](https://github.com/grpc/grpc-go/issues/8672))
### Bug Fixes
- xdsclient: Fix a race condition in the ADS stream implementation that could result in `resource-not-found` errors, causing the gRPC client channel to move to `TransientFailure`. ([#​8605](https://github.com/grpc/grpc-go/issues/8605))
- client: Ignore HTTP status header for gRPC streams. ([#​8548](https://github.com/grpc/grpc-go/issues/8548))
- client: Set a read deadline when closing a transport to prevent it from blocking indefinitely on a broken connection. ([#​8534](https://github.com/grpc/grpc-go/issues/8534))
- Special Thanks: [@​jgold2-stripe](https://github.com/jgold2-stripe)
- client: Fix a bug where default port 443 was not automatically added to addresses without a specified port when sent to a proxy.
- Setting environment variable `GRPC_EXPERIMENTAL_ENABLE_DEFAULT_PORT_FOR_PROXY_TARGET=false` disables this change; please file a bug if any problems are encountered as we will remove this option soon. ([#​8613](https://github.com/grpc/grpc-go/issues/8613))
- balancer/pickfirst: Fix a bug where duplicate addresses were not being ignored as intended. ([#​8611](https://github.com/grpc/grpc-go/issues/8611))
- server: Fix a bug that caused overcounting of channelz metrics for successful and failed streams. ([#​8573](https://github.com/grpc/grpc-go/issues/8573))
- Special Thanks: [@​hugehoo](https://github.com/hugehoo)
- balancer/pickfirst: When configured, shuffle addresses in resolver updates that lack endpoints. Since gRPC automatically adds endpoints to resolver updates, this bug only affects custom LB policies that delegate to `pick_first` but don't set endpoints. ([#​8610](https://github.com/grpc/grpc-go/issues/8610))
- mem: Clear large buffers before re-using. ([#​8670](https://github.com/grpc/grpc-go/issues/8670))
### Performance Improvements
- transport: Reduce heap allocations to reduce time spent in garbage collection. ([#​8624](https://github.com/grpc/grpc-go/issues/8624), [#​8630](https://github.com/grpc/grpc-go/issues/8630), [#​8639](https://github.com/grpc/grpc-go/issues/8639), [#​8668](https://github.com/grpc/grpc-go/issues/8668))
- transport: Avoid copies when reading and writing Data frames. ([#​8657](https://github.com/grpc/grpc-go/issues/8657), [#​8667](https://github.com/grpc/grpc-go/issues/8667))
- mem: Avoid clearing newly allocated buffers. ([#​8670](https://github.com/grpc/grpc-go/issues/8670))
### New Features
- outlierdetection: Add metrics specified in [gRFC A91](https://github.com/grpc/proposal/blob/master/A91-outlier-detection-metrics.md). ([#​8644](https://github.com/grpc/grpc-go/issues/8644))
- Special Thanks: [@​davinci26](https://github.com/davinci26), [@​PardhuKonakanchi](https://github.com/PardhuKonakanchi)
- stats/opentelemetry: Add support for optional label `grpc.lb.backend_service` in per-call metrics ([#​8637](https://github.com/grpc/grpc-go/issues/8637))
- xds: Add support for JWT Call Credentials as specified in [gRFC A97](https://github.com/grpc/proposal/blob/master/A97-xds-jwt-call-creds.md). Set environment variable `GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS=true` to enable this feature. ([#​8536](https://github.com/grpc/grpc-go/issues/8536))
- Special Thanks: [@​dimpavloff](https://github.com/dimpavloff)
- experimental/stats: Add support for up/down counters. ([#​8581](https://github.com/grpc/grpc-go/issues/8581))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMy4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTMuMyIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
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 MR contains the following updates:
v1.76.0->v1.77.0Release Notes
grpc/grpc-go (google.golang.org/grpc)
v1.77.0: Release 1.77.0Compare Source
API Changes
Readerinterface with a struct for better performance and maintainability. (#8669)Behavior Changes
pick_firstLB policy via the environment variableGRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST=false. The newpick_firsthas been the default sincev1.71.0. (#8672)Bug Fixes
resource-not-founderrors, causing the gRPC client channel to move toTransientFailure. (#8605)GRPC_EXPERIMENTAL_ENABLE_DEFAULT_PORT_FOR_PROXY_TARGET=falsedisables this change; please file a bug if any problems are encountered as we will remove this option soon. (#8613)pick_firstbut don't set endpoints. (#8610)Performance Improvements
New Features
grpc.lb.backend_servicein per-call metrics (#8637)GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS=trueto enable this feature. (#8536)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this MR and you won't be reminded about this update again.
This MR has been generated by Renovate Bot.
ℹ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the
go getcommand, which resulted in the following additional change(s):Details:
go.opentelemetry.io/auto/sdkv1.1.0->v1.2.1go.opentelemetry.io/otelv1.37.0->v1.38.0go.opentelemetry.io/otel/metricv1.37.0->v1.38.0go.opentelemetry.io/otel/tracev1.37.0->v1.38.0golang.org/x/netv0.46.0->v0.46.1-0.20251013234738-63d1a5100f82mentioned in issue #3
mentioned in commit
c14f84ab8b