New
Release 1.78.0
Behavior Changes
- client: Align URL validation with Go 1.26+ to now reject target URLs with unbracketed colons in the hostname. (#8716)
- Special Thanks: @neild
- transport/client : Return status code
Unknownon malformed grpc-status. (#8735) -
- xds/resolver:
- Drop previous route resources and report an error when no matching virtual host is found.
- Only log LDS/RDS configuration errors following a successful update and retain the last valid resource to prevent transient failures. (#8711)
New Features
- stats/otel: Add backend service label to weighted round robin metrics as part of A89. (#8737)
- stats/otel: Add subchannel metrics (without the disconnection reason) to eventually replace the pickfirst metrics. (#8738)
- client: Wait for all pending goroutines to complete when closing a graceful switch balancer. (#8746)
- Special Thanks: @twz123
- client: Add
experimental.AcceptCompressorsso callers can restrict thegrpc-accept-encodingheader advertised for a call. (#8718)- Special Thanks: @iblancasa
Bug Fixes
- xds: Fix a bug in
StringMatcherwhere regexes would match incorrectly when ignore_case is set to true. (#8723) - client:
- Change connectivity state to CONNECTING when creating the name resolver (as part of exiting IDLE).
- Change connectivity state to TRANSIENT_FAILURE if name resolver creation fails (as part of exiting IDLE).
- Change connectivity state to IDLE after idle timeout expires even when current state is TRANSIENT_FAILURE.
- Fix a bug that resulted in
OnFinishcall option not being invoked for RPCs where stream creation failed. (#8710)
- xdsclient: Fix a race in the xdsClient that could lead to resource-not-found errors. (#8627)
Performance Improvements
- mem: Round up to nearest 4KiB for pool allocations larger than 1MiB. (#8705)
- Special Thanks: @cjc25