Behavior Changes
- server: Remove support for
GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKINGenvironment varibale. Strict incoming RPC path validation (which has been the default sincev1.79.3) can no longer be disabled. (#9112) - transport: Add environment variable to change the default max header list size from
16MBto8KB. This may be enabled by settingGRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE=true. This will be enabled by default in a subsequent release. (#9019) - balancer: Load Balancing policy registry is now case-sensitive. Set
GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES=false(and file an issue) to revert to case-insensitive behavior. (#9017)
New Features
- experimental/stats: Expose a new API,
NewContextWithLabelCallback, to register a callback that is invoked when telemetry labels are added. (#8877)- Special Thanks: @seth-epps
- client: Return a portion of the response body in the error message, when the client receives an unexpected non-gRPC HTTP response, to make debugging easier. (#8929)
- Special Thanks: @chengxilo
- server: Add environment variable
GRPC_GO_SERVER_GOROUTINE_LABELSthat controls settingruntime/pprof.Labelson goroutines spawned by the server. SetGRPC_GO_SERVER_GOROUTINE_LABELS=grpc.method=trueto add thegrpc.methodlabel on goroutines spawned to handle incoming requests. (#9082)- Special Thanks: @dfinkel
Bug Fixes
- xds/server: Fix a memory leak of HTTP filter instances occurring when route configurations are updated in-place during a Route Discovery Service (RDS) update. (#9138)
- grpc: In the deprecated
gzipCompressor (used via the deprecatedWithCompressordial option), enforce theMaxRecvMsgSizelimit on the decompressed message buffer, preventing excessive memory allocation from highly compressed payloads. (#9114)- Special Thanks: @evilgensec
- stats/opentelemetry: Record retry attempts,
grpc.previous-rpc-attempts, at the call level and not the attempt level. (#8923) - encoding: Ensure
Close()is always called on readers returned fromCompressor.Decompressif possible. (#9135) - channelz: Fix the
LastMessageSentTimestampandLastMessageReceivedTimestampfields inSocketMetricsto ensure they contain correct timestamp values. (#9109)