Releases: grpc/grpc-go
Releases · grpc/grpc-go
Release 1.72.1
Release 1.71.2
Bug Fixes
- client: HTTP Proxy connections are no longer attempted for addresses with non-TCP network types. (#8215)
Release 1.72.0
Dependencies
- Minimum supported Go version is now 1.23 (#8108)
API Changes
- resolver: add experimental
AddressMapV2with generics to ultimately replaceAddressMap. DeprecateAddressMapfor deletion (#8187) - resolver: convert EndpointMap in place to use generics (#8189)
New Features
- xds: add
grpc.xds_client.server_failurecounter metric on xDS client to record connectivity errors (#8203) - balancer/rls: allow
maxAgeto exceed 5 minutes ifstaleAgeis set in the LB policy configuration (#8137) - ringhash: implement gRFC A76 improvements. (#8159)
- pickfirst: The new pick first LB policy is made the default. The new LB policy implements the Happy Eyeballs algorithm. To disable the new policy set the environment variable
GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRSTtofalse(case insensitive).
Bug Fixes
- xds: fix support for circuit breakers and load reporting in LOGICAL_DNS clusters (#8169, #8170)
- xds/cds: improve RPC error messages when resources are not found (#8122)
- balancer/priority: fix race that could leak balancers and goroutines during shutdown (#8095)
- stats/opentelemetry: fix trace attributes message sequence numbers to start from 0 (#8237)
- balancer/pickfirstleaf: fix panic if deprecated Address.Metadata field is set to a non-comparable value by ignoring the field (#8227)
Behavior Changes
- transport: make servers send an HTTP/2 RST_STREAM frame to cancel a stream when the deadline expires (#8071)
Documentation
- stats: clarify the expected sequence of events on a stats handler (#7885)
- Special Thanks: @RyanBlaney
Release 1.71.1
Bug Fixes
- grpc: fix a bug causing an extra Read from the compressor if a compressed message is the same size as the limit. This could result in a panic with the built-in gzip compressor (#8178)
- xds: restore the behavior of reading the bootstrap config before creating the first xDS client instead of at package init time (#8164)
- stats/opentelemetry: use
TextMapPropagatorandTracerProviderfromTraceOptionsinstead of OpenTelemetry globals (#8166) - client: fix races when an http proxy is configured that could lead to deadlocks or panics (#8195)
- client: fix bug causing RPC failures with message "no children to pick from" when using a custom resolver that calls the deprecated
NewAddressAPI (#8149) - wrr: fix slow processing of address updates that could result in problems including RPC failures for servers with a large number of backends (#8179)
Release 1.71.0
API Changes
- balancer: Custom LB policies that record metrics must use the new
MetricsRecordermethod onBalancer.ClientConninstead of the removedBalancer.BuildOptions.MetricsRecorderfield to obtain a metrics recorder. (#8027) - balancer:
balancer.ClientConnimplementations must now embed a delegate implementation. This allows grpc-go to add new methods to the interface and remain backward compatible. (#8026) - balancer/endpointsharding: The constructor accepts the child balancer's builder and a struct with optional configuration. (#8052)
New Features
- xds: Add support for dualstack via the additional_addresses field in the Endpoint resource. To disable this feature, set the environment variable
GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS=false. (#8134) - stats/opentelemetry: Add experimental support for OpenTelemetry tracing. (#7852)
- xds/internal/xdsclient: Add counter metrics for valid and invalid resource updates. (#8038)
- balancer/leastrequest, roundrobin: Add dualstack support. (#7969, #7966)
- balancer/endpointsharding: Balancers created with the new
DisableAutoReconnectoption will not attempt to callExitIdleautomatically on their children when the children report idle. (#8052)
Bug Fixes
- client: Fix support for proxies when using
grpc.NewClientso the target is resolved by the proxy as expected. (#7881)- Added
WithLocalDNSResolution()dial option to explicitly force target resolution on the client instead. (#7881)
- Added
- weightedtarget: Return erroring picker when no targets are configured. (#8070)
- xds: Fail RPCs with
UNAVAILABLEwhen the EDS resource is missing or contains no endpoints (#8070) - xdsclient: Fix a bug where connectivity failures were reported to resource watchers before trying all listed servers. (#8075)
- grpc: Fix the number of bytes reported in the error message when encoded messages are larger than 4GB. (#8033)
- xds: Fixed a bug preventing tests from creating multiple servers or channels with different bootstrap configs. (#8050)
- grpc: Fix message length checks when compression is enabled and
maxReceiveMessageSizeisMaxInt(#7918)- Special Thanks: @vinothkumarr227
Documentation
Release 1.70.0
Behavior Changes
- client: reject service configs containing an invalid retryPolicy in accordance with gRFCs A21 and A6. (#7905)
- Note that this is a potential breaking change for some users using an invalid configuration, but continuing to allow this behavior would violate our cross-language compatibility requirements.
New Features
- xdsclient: fallback to a secondary management server (if specified in the bootstrap configuration) when the primary is down is enabled by default. Can be disabled by setting the environment variable
GRPC_EXPERIMENTAL_XDS_FALLBACKtofalse. (#7949) - experimental/credentials: experimental transport credentials are added which don't enforce ALPN. (#7980)
- These credentials will be removed in an upcoming grpc-go release. Users must not rely on these credentials directly. Instead, they should either vendor a specific version of gRPC or copy the relevant credentials into their own codebase if absolutely necessary.
Bug Fixes
- xds: fix a possible deadlock that happens when both the client application and the xDS management server (responsible for configuring the client) are using the xds:/// scheme in their target URIs. (#8011)
Performance
- server: for unary requests, free raw request message data as soon as parsing is finished instead of waiting until the method handler returns. (#7998)
- Special Thanks: @lqs
Documentation
- examples/features/gracefulstop: add example to demonstrate server graceful stop. (#7865)
Release 1.69.4
Release 1.69.3
Release 1.69.3 was accidentally tagged on the master branch and will be deleted. Please update to 1.69.4 instead.
Release 1.69.2
Bug Fixes
- stats/experimental: add type aliases for symbols (
Metrics/etc) that were moved to the stats package (#7929). - client: set user-agent string to the correct version.
Release 1.68.2
Dependencies
- Remove the experimental
stats/opentelemetrymodule and instead add the experimental packages it contains directly into the maingoogle.golang.org/grpcmodule (#7936)