Skip to content

Releases: grpc/grpc-go

Release v1.27.1

05 Feb 23:41

Choose a tag to compare

  • balancer/base: consider an empty address list an error

Release 1.27.0

28 Jan 19:29
a89bee7

Choose a tag to compare

API Changes

  • balancer/resolver: remove temporary backward-compatibility type aliases (#3309)

Behavior Changes

  • dns: ignore TXT errors unless GRPC_GO_IGNORE_TXT_ERRORS=false (#3299)

New Features

  • client: add interface for ClientConn to be accepted by generated code (#3334)
  • client: add WithResolvers option for specifying client-local resolvers (#3320)
  • advancedtls: add new module for advanced TLS handshaker (#3187)
  • credentials: create API for transport security level information (#3214)

Bug Fixes

  • trace: fix getting family for the method (#3216)

Release 1.26.0

17 Dec 20:55
f5b0812

Choose a tag to compare

API Changes

  • balancer: add V2Picker, ClientConn.UpdateState, SubConnState.ConnectionError (#3186)
  • resolver: introduce attributes package and use it for Address and State (#3151)
  • resolver: rename Option to Options, leaving type aliases for now (#3175)

Behavior Changes

  • dns: disable SRV record lookups unless grpclb is imported (#3149)
  • dns: stop polling for updates; use UpdateState API (#3165)

New Features

  • stats: attach metadata to In/Out Headers/Trailers (#3169)
  • xds: Implementation of the CDS LB policy. (#3224)
  • xds: Implementation of xds_resolver using LDS/RDS (#3183)
  • grpclb: do not send redundant empty load reports to remote LB (#3249)

Performance Improvements

  • server.go: combine defers to reduce stack usage (#3208)
  • profiling: add internal changes to support profiling of gRPC (#3158)

Bug Fixes

  • dns: do not call NewServiceConfig when lookups are disabled (#3201)
  • client: set grpc-accept-encoding header based on outgoing compressor (#3139)
  • server: Keepalive pings should be sent every [Time] period (#3172)

Documentation

  • godoc: clarify WithTimeout deprecation note (#3226)

Release 1.25.1

08 Nov 18:39

Choose a tag to compare

  • resolver: re-add dns and passthrough packages as references to internal versions

Release 1.25.0

05 Nov 21:46
9d331e2

Choose a tag to compare

API Changes

  • resolver: move dns and passthrough to internal (#3116)

New Features

  • credentials: add RequestInfo to context passed to GetRequestMetadata (#3057)
  • resolver: add State fields to support error handling (#2951)
  • clientconn: override authority with address's ServerName, if set (#3073)
  • server: add ServerOption HeaderTableSize (#2931)
  • resolver: Add new fields to resolver.BuildOption struct to support dialing a remote name resolver (#3098)
  • client: add WithConnectParams to configure connection backoff and timeout (#2960)

Performance Improvements

  • Use exact size, if known, to allocate decompression buffer (#3048)

Bug Fixes

  • interop, examples: use localhost instead of 127.0.0.1 (#3124)
  • client: fix race between client-side stream cancellation and compressed server data arriving (#3054)
  • grpclb: enter fallback if no balancer addresses are available (#3119)
  • client: fix keepalive ping rate (#3102)
  • clientconn: fix potential deadlock caused by ResetConnectBackoff (#3051)

Documentation

  • doc: add more details to ClientConn (#3096)
  • examples: add Unimplemented___Server to all example servers (#3071)
  • examples: create an example for enabling and configuring retry (#3028)

Release 1.24.0

25 Sep 20:52
f6d0f9e

Choose a tag to compare

Dependencies

  • internal: update proto library version used to generate pb.go files (#3025)

New Features

  • xds: add functionality to read bootstrap file. (#3000)

Performance Improvements

  • transport: remove defer in http2Client.getStream (#2980)
  • transport: derive transport context from context.Background (#2930)

Bug Fixes

  • client: consider service config invalid if loadBalancingConfig contains no supported policy (#3034)
  • credentials/alts: fix panic detecting GCP environment (#2996)
  • internal: fix context leak when stream is not created successfully (#2985)
  • grpclb: fix deadlock in grpclb connection cache (#3017)
  • server: set and advertise max frame size of 16KB (#3018)

Release 1.21.4

17 Sep 20:46

Choose a tag to compare

  • server: set and advertise max frame size of 16KB (#3018)

Release 1.23.1

11 Sep 18:55

Choose a tag to compare

  • server: set and advertise max frame size of 16KB (#3018)

  • grpclb: fix deadlock in grpclb connection cache (#3017)

    Before the fix, if the timer to remove a SubConn fires at the same time
    NewSubConn cancels the timer, it caused a mutex leak and deadlock.

Release 1.22.3

11 Sep 18:15

Choose a tag to compare

  • server: set and advertise max frame size of 16KB (#3018)

  • grpclb: fix deadlock in grpclb connection cache (#3017)

    Before the fix, if the timer to remove a SubConn fires at the same time
    NewSubConn cancels the timer, it caused a mutex leak and deadlock.

Release 1.23.0

13 Aug 19:34
6eaf6f4

Choose a tag to compare

Security

API Changes

  • xds: move code to a root level xds directory (#2950)

Behavior Changes

  • client: remove option to send RPCs before HTTP/2 handshake is completed (#2904)

New Features

  • grpclb: enable keepalive (#2918)
  • balancer: start populating weight by edsbalancer for weighted_round_robin (#2945)
  • wrr: add EDF implementation of weighted round robin. (#2957)
  • status: Implement *statusError.Is (#2868)
    • Special Thanks: @jsm

Performance Improvements

  • server: avoid an unnecessary allocation per-RPC for OK status (#2920)
  • server: avoid call to trace.FromContext and resulting allocations when tracing is disabled (#2926)
  • http2client: remove unnecessary allocations for header fields (#2925)
  • status: avoid allocations when returning an OK status (#2929)
  • server: avoid allocations related to tracking excessive pings (#2923)

Bug Fixes

  • transport: call Unlock in defer to avoid data race (#2953)
  • client: fix canceled vs deadline exceeded double-check logic (#2906)
  • grpclb: recreate SubConns when switching fallback in case credentials change (#2899)
  • server: populate WireLength on stats.InPayload for unary RPCs (#2932)
  • client: fix race between transport draining and new RPCs (#2919)
  • balancer: filter out grpclb addresses if balancer is not grpclb (#2907)

Documentation

  • docs: clarify "deprecated" to indicate whether some features may be removed in 1.x (#2900)