Sourced from google.golang.org/grpc's releases.
Release 1.77.0
API Changes
- mem: Replace the
Readerinterface with a struct for better performance and maintainability. (#8669)Behavior Changes
- balancer/pickfirst: Remove support for the old
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
- xdsclient: Fix a race condition in the ADS stream implementation that could result in
resource-not-founderrors, causing the gRPC client channel to move toTransientFailure. (#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)
- Special Thanks:
@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=falsedisables 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)
- Special Thanks:
@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_firstbut 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)
- mem: Avoid clearing newly allocated buffers. (#8670)
New Features
- outlierdetection: Add metrics specified in gRFC A91. (#8644)
- Special Thanks:
@davinci26,@PardhuKonakanchi- stats/opentelemetry: Add support for optional label
grpc.lb.backend_servicein 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=trueto enable this feature. (#8536)
- Special Thanks:
@dimpavloff- experimental/stats: Add support for up/down counters. (#8581)
805b1f8
Change version to 1.77.0 (#8677)ea7b66e
Cherrypick #8702 to
v1.77.x (#8709)cadae08
Cherry-pick #8536 to
v1.77.x (#8691)4288cfc
Cherrypick #8657
and #8667 to
v1.77.x (#8690)f959da6
transport: Reduce heap allocations (#8668)0d49384
deps: update all dependencies (#8673)e3e142d
pickfirst: Remove old pickfirst (#8672)254ab10
documentation: fix typos in benchmark and auth docs (#8674)2d56bda
mem: Remove Reader interface and export the concrete struct (#8669)8ab0c82
mem: Avoid clearing new buffers and clear buffers from simpleBufferPools
(#8670)