Skip to content

Releases: grpc/grpc-go

Release 1.21.1

04 Jun 21:33
Compare
Choose a tag to compare
  • transport: fix bug leading to hang when invalid headers are received (#2818)

Release 1.21.0

22 May 17:05
869adfc
Compare
Choose a tag to compare

New Features

  • balancer: provide parsed target through BuildOptions (#2803)
  • grpclb: handle service config and switch to pickfirst (#2719)
  • dns: rate limit DNS resolution requests (#2760)
  • interceptor: new APIs for chaining client interceptors. (#2696)
  • client: return helpful error message when wait-for-ready RPCs fail with timeout (#2777)

Bug Fixes

  • transport: fix a race that could lead to memory leaks (#2765)
  • client: set balancer name correctly when using grpc.WithBalancerName() (#2778) (#2802)

Documentation

  • docs: add note about retrying UNAVAILABLE (#2774)

Release 1.20.1

18 Apr 21:24
Compare
Choose a tag to compare
  • xds: make local proto generated files #2750
  • transport: fix a race that could lead to memory leaks #2765

Release 1.20.0

09 Apr 21:28
236199d
Compare
Choose a tag to compare

API Changes

  • balancer: remove Header from PickOptions; it is also available through context (#2674)

Behavior Changes

  • transport: remove RequireHandshakeHybrid support (#2529)

New Features

  • credentials: add compute engine creds (#2708)
  • grpclb: fallback after init (#2681)
  • server: improve error message when an unknown method is invoked. (#2723)
  • balancer: add server loads from RPC trailers to DoneInfo (#2641)
  • service config: default service config (#2686)
  • bar: add ability to update resolver state atomically and pass directly to the balancer (#2693)
  • stats: add Trailer to client-side stats.End (#2639)

Bug Fixes

  • internal: update golang.org/x/lint dependency (#2690)
  • syscall: remove logging in init(). (#2734)
  • transport: do not close channel that can lead to panic (#2695)
  • grpclb: drop only when at least one SubConn is ready (#2630)
  • stats: add WireLength to stats.InPayload (#2711)
  • client: restore remote address in traces (#2718)
  • server: send RST_STREAM after trailers if client has not half-closed (#2684)
  • channelz: cleanup channel registration if Dial fails (#2733)
  • client: handle HTTP header parsing error correctly (#2599)
  • grpclb: keep drop index unless a new serverlist is received (#2631)
  • client: reset backoff to 0 after a connection is established (#2669)
  • dns: prefixing txt record lookup with "_grpc_config." (#2691)
  • balancer: make sure non-nil done returned by Pick is called (#2688)

Release 1.19.1

20 Mar 23:25
Compare
Choose a tag to compare
  • client: reset backoff to 0 after a connection is established (#2669)

Release 1.18.1

20 Mar 22:39
Compare
Choose a tag to compare
  • client: reset backoff to 0 after a connection is established (#2669)

Release 1.19.0

26 Feb 18:46
2fdaae2
Compare
Choose a tag to compare

API Changes

  • dialOption: export WithContextDialer() (#2629)
  • client: deprecate CallCustomCodec and provide new version using encoding.Codec (#2556)

Behavior Changes

  • keepalive: apply minimum ping time of 10s to client and 1s to server (#2642)

Bug Fixes

  • roundrobin: randomize starting address when rebuilding the picker (#2579)
  • client: fix handling of GRPC_GO_REQUIRE_HANDSHAKE=on to not interpret as "hybrid" (#2603)
  • client: minor v1 balancer wrapper fixes (#2511)
  • transport: resetTransport connect deadline is across addresses (#2540)
  • client: don't allow io.EOF to be passed from balancer to user (#2604)
  • grpc: limit reader with maxReceiveMessageSize (#2617)
  • transport: fixes established streams leak in loopy writer. (#2610)

Documentation

  • examples: add keepalive example (#2637)
  • examples: reflection (#2594)
  • Fix error message formatting (#2615)

Release 1.18.0

15 Jan 21:01
a02b077
Compare
Choose a tag to compare

API Changes

  • client: deprecates FailFast & replaces its use by WaitForReady. (#2522)

Behavior Changes

  • client: make handshake required 'on' by default, not 'hybrid' (#2565)
    • See issue #2406 for more information

New Features

  • health: shutdown server to set NOT_SERVING and disallow future updates (#2513)
  • channelz: implement GetServer method (#2537)
  • health: resume health server (#2528)

Bug Fixes

  • client: report last connection error to RPCs via v1 balancer API (#2508)
  • grpclb: re-resolve when the stream to GRPCLB balancer fails (#2502)
  • client: do not expose trailer if client cancels RPC before receiving its status (#2554)
  • grpclb: filter out grpclb addresses if balancer in use is not grpclb (#2509)
  • channelz: respect max_results in listing methods (#2516)

Documentation

  • example: add echo proto (#2505)
  • example: load_balancing (#2504)
  • example: deadline (#2494)
  • example: compression (#2527)
  • example: interceptor (#2541)
  • example: errors (#2521)
  • example: authentication (#2531)
  • example: debugging (#2536)
  • example: encryption (#2524)
  • example: errors (#2534)
  • example: metadata (#2500)
  • example: wait_for_ready (#2503)
  • example: multiplex (#2477)
  • example: cancellation (#2525)
  • example: name_resolving (#2514)

Release 1.17.0

04 Dec 23:54
df01485
Compare
Choose a tag to compare

NOTICE

Upcoming connection establishment behavior change in the next release. Please see #2406 for more details.

Dependencies

  • Remove support for Go1.6-1.8 (#2428)

New Features

  • client: add GRPC_GO_REQUIRE_HANDSHAKE options to control connection behavior (#2464)
  • proxy: support basic authentication (#2426)
  • client: set TCP_USER_TIMEOUT socket option for linux (#2307)
  • binarylog: call binary log in Client and Server (#2388)
  • health: Client LB channel health checking (#2387)

Performance Improvements

  • transport: increase BDP limit to 16MB to improve performance for high latency networks (#2455)

Bug Fixes

  • client: ensure resolver operations are handled in order (#2446)
  • channelz: returns sockets after startID in GetServerSockets() (#2401)
  • client: block RPCs early until the resolver has returned addresses (#2409)

Documentation

  • docs: clarify SendMsg/CloseSend usage (#2418)

Release 1.16.0

23 Oct 17:47
2e463a0
Compare
Choose a tag to compare

New Features

  • health: implement Watch method in server (#2365)
  • balancer: add trailer metadata to DoneInfo (#2359)
  • balancer: add header metadata to PickOptions (#2376)
  • resolver/dns: support custom dns authority (#2265)
  • channelz: channel tracing (#2262)
  • credentials: support google default creds (#2315)

Bug Fixes

  • server: fix handling of RPC timeouts that overflow int64 nanos (#2379)
  • credentials/alts: pass the target name to ALTS handshaker (#2319)
  • clientconn: fix race when service config updated while closing (#2371)
  • transport: ensure client always closes streams (#2354)
  • stream: never return errors from CloseSend (#2312)
  • Check error when calling compressor.Compress (#2274)

Additional Notes

Special thanks @fastest963 for going above and beyond in helping us debug hard-to-reproduce transport issues.