API Changes
- mem: Add experimental API
SetDefaultBufferPoolto change the default buffer pool. (#8806)- Special Thanks: @vanja-p
- experimental/stats: Update
MetricsRecorderto require embedding the newUnimplementedMetricsRecorder(a no-op struct) in all implementations for forward compatibility. (#8780)
Behavior Changes
- balancer/weightedtarget: Remove handling of
Addressesand only handleEndpointsin resolver updates. (#8841)
New Features
- experimental/stats: Add support for asynchronous gauge metrics through the new
AsyncMetricReporterandRegisterAsyncReporterAPIs. (#8780) - pickfirst: Add support for weighted random shuffling of endpoints, as described in gRFC A113.
- This is enabled by default, and can be turned off using the environment variable
GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING. (#8864)
- This is enabled by default, and can be turned off using the environment variable
- xds: Implement
:authorityrewriting, as specified in gRFC A81. (#8779) - balancer/randomsubsetting: Implement the
random_subsettingLB policy, as specified in gRFC A68. (#8650)- Special Thanks: @marek-szews
- server: Include status detail headers, if available, when terminating a stream during request header processing. (#8754)
- Special Thanks: @joybestourous
Bug Fixes
- credentials/tls: Fix a bug where the port was not stripped from the authority override before validation. (#8726)
- Special Thanks: @Atul1710
- xds/priority: Fix a bug causing delayed failover to lower-priority clusters when a higher-priority cluster is stuck in
CONNECTINGstate. (#8813) - health: Fix a bug where health checks failed for clients using legacy compression options (
WithDecompressororRPCDecompressor). (#8765)- Special Thanks: @sanki92
- transport: Fix an issue where the HTTP/2 server could skip header size checks when terminating a stream early. (#8769)
- Special Thanks: @joybestourous