Sourced from google.golang.org/grpc's releases.
Release 1.40.0
Behavior Changes
- balancer: client channel no longer connects to idle subchannels that are returned by the pickers; LB policy should call SubConn.Connect instead. (#4579)
- This change is in line with existing documentation stating the balancer must call Connect on idle SubConns in order for them to connect, and is preparation for an upcoming change that transitions SubConns to the idle state when connections are lost. See https://pkg.go.dev/google.golang.org/grpc/balancer#SubConn for more details.
Bug Fixes
- transport: fail RPCs without HTTP status 200 (OK), according to the gRPC spec (#4474)
- Special Thanks:
@JNProtzman- binarylog: fail the
Write()method if proto marshaling fails (#4582)
- Special Thanks:
@Jille- binarylog: exit the flusher goroutine upon closing the
bufferedSink(#4583)
- Special Thanks:
@JilleNew Features
- metadata: add Delete method to MD to encapsulate lowercasing (#4549)
- Special Thanks:
@konradreiche- xds/cds: support logical DNS cluster and aggregated cluster (#4594)
- stats: add stats.Begin.IsClientStream and IsServerStream to indicate the type of RPC invoked (#4533)
- Special Thanks:
@leviskaPerformance Improvements
- server: improve performance when multiple interceptors are used (#4524)
- Special Thanks:
@amenzhinsky
41e044e server: fix leaked net.Conn (#4644) (#4670)1634fd3 Change version to 1.40.0 (#4623)b1a15ac server: fix leaked net.Conn (#4644)00edd8c Add xDS k8s url-map test Kokoro job (#4614)1ddab33 client: fix detection of whether IO was performed in NewStream (#4611)582ef45 cluster_resolver: move balancer config types into cluster_resolver package an...c513103 Add extra layer on top of RBAC Engine (#4576)a0bed72 xds: add http filters to FilterChain matching (#4595)0a8c637 grpclb: propagate the most recent connection error when grpclb enters transie...8332d5b test: fix possible goroutine leaks in unit tests (#4570)