版本发布 8
# Dependencies * Minimum supported Go version is now 1.24 (#8509) - Special Thanks: @kevinGC # Bug Fixes * client: Return status `INTERNAL` when a server sends zero response messages for a unary or client-streaming RPC. (#8523) * client: Fail RPCs with status `INTERNAL` instead of `UNKNOWN` upon receiving http headers with status 1xx and `END_STREAM` flag set. (#8518) - Special Thanks: @vinothkumarr227 * pick_first: Fix race condition that could cause pick_first to get stuck in `IDLE` state on backend address change. (#8615) # New Features * credentials: Add `credentials/jwt` package providing file-based JWT PerRPCCredentials (A97). (#8431) - Special Thanks: @dimpavloff # Performance Improvements * client: Improve HTTP/2 header size estimate to reduce re-allocations. (#8547) * encoding/proto: Avoid redundant message size calculation when marshaling. (#8569) - Special Thanks: @rs-unity
# Bug Fixes - server: Fix a regression preventing streams from being cancelled or timed out when blocked on flow control. (https://github.com/grpc/grpc-go/pull/8528)
# Bug Fixes - xds: Fix a regression preventing empty node IDs in the bootstrap configuration. (#8476 , #8483) - xdsclient: - Fix a data race caused while reporting load to LRS. (#8483) - server: Fix a regression preventing streams from being cancelled or timed out when blocked on flow control. (#8528)
# API Changes * balancer: add `ExitIdle` method to `Balancer` interface. Earlier, implementing this method was optional. (#8367) # Behavior Changes * xds: Remove the `GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST` environment variable that allows disabling the least request balancer with xDS. Least request was made available by default with xDS in v1.72.0. (#8248) - Special Thanks: @atollena * server: allow 0s grpc-timeout header values, which older gRPC-Java versions could send. This restores the behavior of grpc-go before v1.73.0. (#8439) # Bug Fixes * googledirectpath: avoid logging the error message `Attempt to set a bootstrap configuration...` when creating multiple directpath channels. (#8419) # Performance Improvements * transport: reduce heap allocations by pooling objects and avoiding method-to-closure conversions. (#8361) * transport: reduce heap allocations by re-using `mem.Reader` objects. (#8360) # Documentation * examples: add examples to demonstrate enabling experimental metrics using the OpenTelemetry plugin. (#8388) - Special Thanks: @vinothkumarr227
Release 1.74.0 was accidentally tagged on the wrong commit and will be deleted. Please update to 1.74.1 which should be released shortly.
# New Features * balancer/ringhash: move LB policy from xds/internal to exported path to facilitate use without xds (#8249) * xds: enable least request LB policy by default. It can be disabled by setting `GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST=false` in your environment. (#8253) * grpc: add a `CallAuthority` Call Option that can be used to overwrite the http `:authority` header on per-RPC basis. (#8068) * stats/opentelemetry: add trace event for name resolution delay. (#8074) * health: added `List` method to gRPC Health service. (#8155) - Special Thanks: @marcoshuck * ringhash: implement features from gRFC A76. (#8159) * xds: add functionality to support SPIFFE Bundle Maps as roots of trust in XDS which can be enabled by setting `GRPC_EXPERIMENTAL_XDS_MTLS_SPIFFE=true`. (#8167, #8180, #8229, #8343) # Bug Fixes * xds: locality ID metric label is changed to make it consistent with [gRFC A78](https://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md#optional-xds-locality-label). (#8256) * client: fail RPCs on the client when using extremely short contexts that expire before the `grpc-timeout` header is created. (#8312) * server: non-positive `grpc-timeout` header values are now rejected. This is consistent with the [gRPC protocol spec](https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests). (#8290) - Special Thanks: @evanj * xds: fix reported error string when LRS load reporting interval is invalid. (#8224) - Special Thanks: @alingse # Performance Improvements * credentials/alts: improve read performance by optimizing buffer copies and allocations. (#8271) * server: improve performance of RPC handling by avoid a status proto copy (#8282) - Special Thanks: @evanj # Documentation * examples/features/opentelemetry: modify example to demonstrate tracing using OpenTelemtry plugin. (#8056)
# Bug Fixes - client: HTTP Proxy connections are no longer attempted for addresses with non-TCP network types. (#8215) - client: Fix bug that causes RPCs to fail with status INTERNAL instead of CANCELLED or DEADLINE_EXCEEDED when receiving a RST_STREAM frame in the middle of the gRPC message. (#8289)
# Bug Fixes - client: HTTP Proxy connections are no longer attempted for addresses with non-TCP network types. (#8215)