Skip to content

Releases: grpc/grpc-go

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)

Release 1.49.0

24 Aug 00:32
1c29e07
Compare
Choose a tag to compare

New Features

  • gcp/observability: add support for Environment Variable GRPC_CONFIG_OBSERVABILITY_JSON (#5525)
  • gcp/observability: add support for custom tags (#5565)

Behavior Changes

  • server: reduce log level from Warning to Info for early connection establishment errors (#5524)

Bug Fixes

  • client: fix race in flow control that could lead to unexpected EOF errors (#5494)
  • client: fix a race that could cause RPCs to time out instead of failing more quickly with UNAVAILABLE (#5503)
  • client & server: fix a panic caused by passing a nil stats handler to grpc.WithStatsHandler or grpc.StatsHandler (#5543)
  • transport/server: fix a race that could cause a stray header to be sent (#5513)
  • balancer: give precedence to IDLE over TRANSIENT_FAILURE when aggregating connectivity state (#5473)
  • xds/xdsclient: request correct resource name when user specifies a new style resource name with empty authority (#5488)
  • xds/xdsclient: NACK endpoint resources with zero weight (#5560)
  • xds/xdsclient: fix bug that would reset resource version information after ADS stream restart (#5422)
  • xds/xdsclient: fix goroutine leaks when load reporting is enabled (#5505)
  • xds/ringhash: fix config update processing to recreate ring and picker when min/max ring size changes (#5557)
  • xds/ringhash: avoid recreating subChannels when update doesn't change address weight information (#5431)
  • xds/priority: fix bug which could cause priority LB to block all traffic after a config update (#5549)
  • xds: fix bug when environment variable GRPC_EXPERIMENTAL_ENABLE_OUTLIER_DETECTION is set to true (#5537)