Releases: grpc/grpc-go
Releases · grpc/grpc-go
Release 1.21.1
- transport: fix bug leading to hang when invalid headers are received (#2818)
Release 1.21.0
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)
- Special Thanks: @yuqitao
Bug Fixes
- transport: fix a race that could lead to memory leaks (#2765)
- client: set balancer name correctly when using grpc.WithBalancerName() (#2778) (#2802)
- Special Thanks: @wjywbs
Documentation
- docs: add note about retrying UNAVAILABLE (#2774)
Release 1.20.1
Release 1.20.0
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)
- Special Thanks: @mklencke
Bug Fixes
- internal: update golang.org/x/lint dependency (#2690)
- syscall: remove logging in init(). (#2734)
- Special Thanks: @yangminzhu
- transport: do not close channel that can lead to panic (#2695)
- Special Thanks: @aanm
- grpclb: drop only when at least one SubConn is ready (#2630)
- stats: add WireLength to stats.InPayload (#2711)
- Special Thanks: @ilylia
- 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
- client: reset backoff to 0 after a connection is established (#2669)
Release 1.18.1
- client: reset backoff to 0 after a connection is established (#2669)
Release 1.19.0
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)
- Special Thanks: @dntj
- 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
Release 1.18.0
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)
- Special Thanks: @kazegusuri
- 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)
- Special Thanks: @kazegusuri
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
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)
- Special Thanks: @mikeraimondi
- 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
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)
- Special Thanks: @elliots
- 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)
- Special Thanks: @siggy
- stream: never return errors from CloseSend (#2312)
- Check error when calling compressor.Compress (#2274)
- Special Thanks: @JelteF
Additional Notes
Special thanks @fastest963 for going above and beyond in helping us debug hard-to-reproduce transport issues.