Skip to content

Releases: grpc/grpc-go

Release 1.72.1

14 May 16:39
4cf3cf7

Choose a tag to compare

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)

Release 1.71.2

14 May 16:38
ea0d644

Choose a tag to compare

Bug Fixes

  • client: HTTP Proxy connections are no longer attempted for addresses with non-TCP network types. (#8215)

Release 1.72.0

21 Apr 04:35
a43eba6

Choose a tag to compare

Dependencies

  • Minimum supported Go version is now 1.23 (#8108)

API Changes

  • resolver: add experimental AddressMapV2 with generics to ultimately replace AddressMap. Deprecate AddressMap for deletion (#8187)
  • resolver: convert EndpointMap in place to use generics (#8189)

New Features

  • xds: add grpc.xds_client.server_failure counter metric on xDS client to record connectivity errors (#8203)
  • balancer/rls: allow maxAge to exceed 5 minutes if staleAge is 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_FIRST to false (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)

Release 1.71.1

01 Apr 09:29
cdbdb75

Choose a tag to compare

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 TextMapPropagator and TracerProvider from TraceOptions instead 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 NewAddress API (#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

04 Mar 19:29
d01db5c

Choose a tag to compare

API Changes

  • balancer: Custom LB policies that record metrics must use the new MetricsRecorder method on Balancer.ClientConn instead of the removed Balancer.BuildOptions.MetricsRecorder field to obtain a metrics recorder. (#8027)
  • balancer: balancer.ClientConn implementations 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 DisableAutoReconnect option will not attempt to call ExitIdle automatically on their children when the children report idle. (#8052)

Bug Fixes

  • client: Fix support for proxies when using grpc.NewClient so the target is resolved by the proxy as expected. (#7881)
    • Added WithLocalDNSResolution() dial option to explicitly force target resolution on the client instead. (#7881)
  • weightedtarget: Return erroring picker when no targets are configured. (#8070)
  • xds: Fail RPCs with UNAVAILABLE when 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 maxReceiveMessageSize is MaxInt (#7918)

Documentation

  • client: Improve documentation of grpc.NewClient and ClientConn.CanonicalTarget by providing examples. (#8078)
  • examples/features/dualstack: New example demonstrating usage of endpoints and dualstack functionality. (#8098)

Release 1.70.0

23 Jan 17:45
98a0092

Choose a tag to compare

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_FALLBACK to false. (#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

13 Jan 07:08
4103cfc

Choose a tag to compare

Bug Fixes

  • rbac: fix support for :path header matchers, which would previously never successfully match (#7965).

Documentation

  • examples/features/csm_observability: update example client and server to use the helloworld service instead of echo service (#7945).

Release 1.69.3

13 Jan 06:11
aad8a12

Choose a tag to compare

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

18 Dec 18:05
b615b35

Choose a tag to compare

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

18 Dec 16:07
c982e40

Choose a tag to compare

Dependencies

  • Remove the experimental stats/opentelemetry module and instead add the experimental packages it contains directly into the main google.golang.org/grpc module (#7936)