Skip to content

Releases: grpc/grpc-go

Release 1.68.0

07 Nov 16:30
acba4d3
Compare
Choose a tag to compare

Behavior Changes

  • stats/opentelemetry/csm: Get mesh_id local label from "CSM_MESH_ID" environment variable, rather than parsing from bootstrap file (#7740)
  • orca (experimental): if using an ORCA listener, it must now be registered only on a READY SubConn, and the listener will automatically be stopped when the connection is lost. (#7663)
  • client: ClientConn.Close() now closes transports simultaneously and waits for transports to be closed before returning. (#7666)
  • credentials: TLS credentials created via NewTLS that use tls.Config.GetConfigForClient will now have CipherSuites, supported TLS versions and ALPN configured automatically. These were previously only set for configs not using the GetConfigForClient option. (#7709)

Bug Fixes

  • transport: prevent deadlock in client transport shutdown when writing the GOAWAY frame hangs. (#7662)
  • mem: reuse buffers more accurately by using slice capacity instead of length (#7702)
  • status: Fix regression caused by #6919 in status.Details() causing it to return a wrapped type when getting proto messages generated with protoc-gen-go < v1. (#7724)

Dependencies

  • Bump minimum supported Go version to go1.22.7. (#7624)

Release 1.65.1

07 Oct 15:57
4caf929
Compare
Choose a tag to compare

Bug Fixes

  • xds/server: Fix xDS Server memory leak. (#7664)

Release 1.67.1

01 Oct 05:17
3f95b38
Compare
Choose a tag to compare

Bug Fixes

  • transport: Fix a bug causing stream failures due to miscalculation of the flow control window in both clients and servers. (#7667)
  • xds/server: Fix xDS Server memory leak. (#7681)

Release 1.66.3

01 Oct 17:13
b48e355
Compare
Choose a tag to compare

Bug Fixes

  • transport: Fix a bug causing stream failures due to miscalculation of the flow control window in both clients and servers. (#7667)
  • xds/server: Fix xDS Server memory leak. (#7681)

Release 1.67.0

20 Sep 06:48
6f50403
Compare
Choose a tag to compare

Bug Fixes

  • ringhash: when used with multiple EDS priorities, fix bug that could prevent a higher priority from recovering from transient failure. (#7364)

Behavior Changes

  • In accordance with RFC 7540, clients and servers will now reject TLS connections that don't support ALPN. This can be disabled by setting the environment variable GRPC_ENFORCE_ALPN_ENABLED to false (case insensitive). Please file a bug if you encounter any issues with this behavior. The environment variable to revert this behavior will be removed in an upcoming release. (#7535)

Release 1.66.2

11 Sep 18:40
d0bf90a
Compare
Choose a tag to compare

Dependencies

  • Remove unintentional dependency on the testing package (#7579)
  • Remove unintentional dependency on the flate package (#7595)

Bug Fixes

  • client: fix a bug that prevented memory reuse after handling unary RPCs (#7571)

Release 1.66.0

28 Aug 09:40
00d3ec8
Compare
Choose a tag to compare

New Features

  • metadata: stabilize ValueFromIncomingContext (#7368)
  • client: stabilize the WaitForStateChange and GetState methods, which were previously experimental. (#7425)
  • xds: Implement ADS flow control mechanism (#7458)
  • balancer/rls: Add metrics for data cache and picker internals (#7484, #7495)
  • xds: LRS load reports now include the total_issued_requests field. (#7544)

Bug Fixes

  • grpc: Clients now return status code INTERNAL instead of UNIMPLEMENTED when the server uses an unsupported compressor. This is consistent with the gRPC compression spec. (#7461)
  • transport: Fix a bug which could result in writes busy looping when the underlying conn.Write returns errors (#7394)
  • client: fix race that could lead to orphaned connections and associated resources. (#7390)
  • xds: use locality from the connected address for load reporting with pick_first (#7378)
    • without this fix, if a priority contains multiple localities with pick_first, load was reported for the wrong locality
  • client: prevent hanging during ClientConn.Close() when the network is unreachable (#7540)

Performance Improvements

  • transport: double buffering is avoided when using an http connect proxy and the target server waits for client to send the first message. (#7424)
  • codec: Implement a new Codec which uses buffer recycling for encoded message (#7356)
    • introduce a mem package to facilitate buffer reuse (#7432)
    • Special Thanks: @PapaCharlie

protoc-gen-go-grpc v1.5.1

29 Jul 17:05
ec9dff7
Compare
Choose a tag to compare

Dependencies

  • Removed replace directive (needed only for testing), since it is incompatible with go install (#7451).

protoc-gen-go-grpc v1.5.0

29 Jul 08:01
3eb0145
Compare
Choose a tag to compare

Security

  • The generated function Register<Service>Server now panics if the Unimplemented<Service>Server struct is embedded in a way that would otherwise lead to runtime panics if an unimplemented method was called. Users are advised to ensure they are properly embedding the Unimplemented struct for their service, and to regenerate their proto files to confirm. (#7438)
    • Note: "Proper embedding" of the Unimplemented struct means either embedding the struct by value (preferred) or ensuring it is always initialized to a valid pointer. E.g.
struct MyServiceImpl {
	pb.UnimplementedMyServiceServer // embedded by value, not pointer
	// .. other struct fields ..
}

New Features

  • Generated code for services will produce streaming method definitions using one of six different generic types (e.g. BidiStreamingServer or ClientStreamingClient) instead of producing complete interfaces and implementations for the streaming methods. This can be disabled by setting use_generic_streams_experimental=false. Please file a bug if you encounter any issues with this behavior. (#7387)

Bug Fixes

  • A period (.) is added to the end of the service interface doc comment to comply with Godoc. (#7392)

Release 1.65.0

02 Jul 15:58
2da9769
Compare
Choose a tag to compare

Dependencies

  • Change support policy to cover only the latest TWO releases of Go, matching the policy for Go itself. See #7249 for more information. (#7250)
  • Update x/net/http2 to address CVE-2023-45288 (#7282)

Behavior Changes

  • credentials/tls: clients and servers will now reject connections that don't support ALPN when environment variable GRPC_ENFORCE_ALPN_ENABLED is set to "true" (case insensitive). (#7184)
    • NOTE: this behavior will become the default in a future release.
  • metadata: remove String method from MD to make printing more consistent (#7373)

New Features

  • grpc: add WithMaxCallAttempts to configure gRPC's retry behavior per-channel. (#7229)

Bug Fixes

  • ringhash: properly apply endpoint weights instead of ignoring them (#7156)
  • xds: fix a bug that could cause xds-enabled servers to stop accepting new connections after handshaking errors (#7128)