Sourced from google.golang.org/grpc's releases.
Release 1.69.0
Known Issues
- The recently added
grpc.NewClient
function is incompatible with forward proxies, because it resolves the target hostname on the client instead of passing the hostname to the proxy. A fix is expected to be a part of grpc-go v1.70. (#7556)New Features
- stats/opentelemetry: Introduce new APIs to enable OpenTelemetry instrumentation for metrics on servers and clients (#7874)
- xdsclient: add support to fallback to lower priority servers when higher priority ones are down (#7701)
- dns: Add support for link local IPv6 addresses (#7889)
- The new experimental
pickfirst
LB policy (disabled by default) supports Happy Eyeballs, interleaving IPv4 and IPv6 address as described in RFC-8305 section 4, to attempt connections to multiple backends concurrently. The experimentalpickfirst
policy can be enabled by setting the environment variableGRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST
totrue
. (#7725, #7742)- balancer/pickfirst: Emit metrics from the
pick_first
load balancing policy (#7839)- grpc: export
MethodHandler
, which is the type of an already-exported field inMethodDesc
(#7796)
- Special Thanks:
@mohdjishin
Bug Fixes
- credentials/google: set scope for application default credentials (#7887)
- Special Thanks:
@halvards
- xds: fix edge-case issues where some clients or servers would not initialize correctly or would not receive errors when resources are invalid or unavailable if another channel or server with the same target was already in use . (#7851, #7853)
- examples: fix the debugging example, which was broken by a recent change (#7833)
Behavior Changes
- client: update retry attempt backoff to apply jitter per updates to gRFC A6. (#7869)
- Special Thanks:
@isgj
- balancer/weightedroundrobin: use the
pick_first
LB policy to manage connections (#7826)API Changes
- balancer: An internal method is added to the
balancer.SubConn
interface to force implementors to embed a delegate implementation. This requirement is present in the interface documentation, but wasn't enforced earlier. (#7840)Performance Improvements
- mem: implement a
ReadAll()
method for more efficientio.Reader
consumption (#7653)
- Special Thanks:
@ash2k
- mem: use slice capacity instead of length to determine whether to pool buffers or directly allocate them (#7702)
- Special Thanks:
@PapaCharlie
Documentation
- examples/csm_observability: Add xDS Credentials and switch server to be xDS enabled (#7875)
Release 1.68.1
Bug Fixes
- credentials/alts: avoid SRV and TXT lookups for handshaker service to work around hangs caused by buggy versions of systemd-resolved. (#7861)
Dependencies
... (truncated)
317271b
pickfirst: Register a health listener when used as a leaf policy (#7832)5565631
balancer/pickfirst: replace grpc.Dial with grpc.NewClient in tests (#7879)634497b
test: Split import paths for generated message and service code (#7891)78aa51b
pickfirst: Stop test servers without closing listeners (#7872)00272e8
dns: Support link local IPv6 addresses (#7889)17d08f7
scripts/gen-deps: filter out grpc modules (#7890)ab189b0
examples/features/csm_observability: Add xDS Credentials (#7875)3ce87dd
credentials/google: Add cloud-platform scope for ADC (#7887)3c0586a
stats/opentelemetry: Cleanup OpenTelemetry API's before stabilization
(#7874)4c07bca
stream: add jitter to retry backoff in accordance with gRFC A6 (#7869)