Skip to content

Releases: grpc/grpc-go

Release 1.54.0

22 Mar 00:44
2997e84
Compare
Choose a tag to compare

Behavior Changes

  • xds: remove support for xDS v2 transport API (#6013)

New Features

  • server: expose SetSendCompressor API to set send compressor name (#5744)
  • xdsclient: include Node proto only in the first discovery request message, to improve performance (#6078)

Bug Fixes

  • metadata: fix validation logic and properly validate metadata appended via AppendToOutgoingContext (#6001)
  • transport: do not close connections when we encounter I/O errors until after all data is consumed (#6110)
  • ringhash: ensure addresses are consistently hashed across updates (#6066)
  • xds/clusterimpl: fix a bug causing unnecessary closing and re-opening of LRS streams (#6112)
  • xds: NACK route configuration if sum of weights of weighted clusters exceeds uint32_max (#6085)

Documentation

  • resolver: update Resolver.Scheme() docstring to mention requirement of lowercase scheme names (#6014)
  • resolver: document expected error handling of UpdateState errors (#6002)
    • Special Thanks: @fho
  • examples: add example for ORCA load reporting (#6114)
  • examples: add an example to illustrate authorization (authz) support (#5920)

protoc-gen-go-grpc v1.3.0

01 Mar 23:51
8ba23be
Compare
Choose a tag to compare

New features

  • Export consts for full method names (#5886)
  • Include file level comment from proto definition in pb.go output, similar to protoc-gen-go (#5540)

Release 1.53.0

07 Feb 22:01
dba26e1
Compare
Choose a tag to compare

API Changes

  • balancer: support injection of per-call metadata from LB policies (#5853)
  • resolver: remove deprecated field resolver.Target.Endpoint and replace with resolver.Target.Endpoint() (#5852)

New Features

  • xds/ringhash: introduce GRPC_RING_HASH_CAP environment variable to override the maximum ring size. (#5884)
  • rls: propagate headers received in RLS response to backends (#5883)

Bug Fixes

  • transport: drain client transport when streamID approaches MaxStreamID (#5889)
  • server: after GracefulStop, ensure connections are closed when final RPC completes (#5968)
  • server: fix a few issues where grpc server uses RST_STREAM for non-HTTP/2 errors (#5893)
  • xdsclient: fix race which can happen when multiple load reporting calls are made at the same time. (#5927)
  • rls: fix a data race involving the LRU cache (#5925)
  • xds: fix panic involving double close of channel in xDS transport (#5959)
  • gcp/observability: update method name validation (#5951)

Documentation

  • credentials/oauth: mark NewOauthAccess as deprecated (#5882)

Release 1.52.3

25 Jan 20:26
fe39661
Compare
Choose a tag to compare

Bug Fixes

  • Fix user-agent version

Release 1.52.2

25 Jan 19:44
533d7fd
Compare
Choose a tag to compare

Bug Fixes

  • xds: fix panic involving double close of channel in xDS transport (#5959)

Release 1.52.1

24 Jan 21:21
2b4813f
Compare
Choose a tag to compare

Bug Fixes

  • grpclb: rename grpclbstate package back to state (#5963)

Release 1.52.0

10 Jan 22:28
ce56cef
Compare
Choose a tag to compare

New Features

  • xdsclient: log node ID with verbosity INFO (#5860)
  • ringhash: impose cap on max_ring_size to reduce possibility of OOMs (#5801)

Behavior Changes

  • client: return an error from Dial if an empty target is passed and no custom dialer is present; the ClientConn would otherwise be unable to connect and perform RPCs (#5732)

Bug Fixes

  • transport (net/http server handler): respond to bad HTTP requests with status 400 (Bad Request) instead of 500 (Internal Server Error). (#5804)
  • transport: Fixed closing a closed channel panic in handlePing (#5854)
  • server: fix ChainUnaryInterceptor and ChainStreamInterceptor to allow retrying handlers (#5666)
  • transport: ensure value of :authority header matches server name used in TLS handshake when the latter is overridden by the name resolver (#5748)

Documentation

  • examples: add an example to illustrate the usage of stats handler (#5657)
  • examples: add new example to show updating metadata in interceptors (#5788)

Release 1.51.0

18 Nov 16:57
eeb9afa
Compare
Choose a tag to compare

Behavior Changes

  • xds: NACK EDS resources with duplicate addresses in accordance with a recent spec change (#5715)
  • grpc: restrict status codes that can be generated by the control plane (gRFC A54) (#5653)

New Features

  • client: set grpc-accept-encoding header with all registered compressors (#5541)
  • xds/weightedtarget: return a more meaningful error when all child policies are in TRANSIENT_FAILURE (#5711)
  • gcp/observability: add "started rpcs" metric (#5768)
  • xds: de-experimentalize the google-c2p-resolver (#5707)
  • balancer: add experimental Producer types and methods (#5669)
  • orca: provide a way for LB policies to receive OOB load reports (#5669)

Bug Fixes

  • go.mod: upgrade x/text dependency to address CVE 2022-32149 (#5769)
  • client: fix race that could lead to an incorrect connection state if it was closed immediately after the server's HTTP/2 preface was received (#5714)
  • xds: ensure sum of the weights of all EDS localities at the same priority level does not exceed uint32 max (#5703)
  • client: fix binary logging bug which logs a server header on a trailers-only response (#5763)
  • balancer/priority: fix a bug where unreleased references to removed child policies (and associated state) was causing a memory leak (#5682)
  • xds/google-c2p: validate URI schema for no authorities (#5756)

Release 1.50.1

14 Oct 22:03
4c776ec
Compare
Choose a tag to compare

New Features

  • gcp/observability: support new configuration defined in public preview user guide

Release 1.50.0

06 Oct 16:13
c1d7d7a
Compare
Choose a tag to compare

Behavior Changes

  • client: use proper "@" semantics for connecting to abstract unix sockets. (#5678)
    • This is technically a bug fix; the result is that the address was including a trailing NULL byte, which it should not have. This may break users creating the socket in Go by prefixing a NULL instead of an "@", though, so calling it out as a behavior change.

New Features

  • metadata: add experimental ValueFromIncomingContext to more efficiently retrieve a single value (#5596)
  • stats: provide peer information in HandleConn context (#5589)
  • xds: add support for Outlier Detection, enabled by default (#5435, #5673)

Bug Fixes

  • client: fix deadlock in transport caused by GOAWAY racing with stream creation (#5652)
    • This should only occur with an HTTP/2 server that does not follow best practices of an advisory GOAWAY (not a grpc-go server).
  • xds/xdsclient: fix a bug which was causing routes with cluster_specifier_plugin set to be NACKed when GRPC_EXPERIMENTAL_XDS_RLS_LB was off (#5670)
  • xds/xdsclient: NACK cluster resource if config_source_specifier in lrs_server is not self (#5613)
  • xds/ringhash: fix a bug which sometimes prevents the LB policy from retrying connection attempts (#5601)
  • xds/ringhash: do nothing when asked to exit IDLE instead of falling back on the default channel behavior of connecting to all addresses (#5614)
  • xds/rls: fix a bug which was causing the channel to be stuck in IDLE (#5656)
  • alts: fix a bug which was setting WaitForReady on handshaker service RPCs, thereby delaying fallback when required (#5620)
  • gcp/observability: fix End() to cleanup global state correctly (#5623)