API Changes
- xds: Enable Xds Client Fallback by default. This allows having a backup xDS server as described in gRFC A71-xds-fallback.md (#11817) (176f3ee)
- protobuf: Experimental API marshallerWithRecursionLimit in
ProtoUtils
is now stabilized (#11884) (90b1c4f)
Bug Fixes
- xds: Cluster weights should be uint32 (199a7ea). They were previously processed as int32, although the sum of weights was checked to be positive. So this would have caused a very large weight to never be selected and to reduce the chances of immediately-following clusters to be selected. There have been no reports of control planes using such large weights
- xds: Fix an unlikely infinite loop triggered by route update (199a7ea). Triggering required the old cluster to no longer be used, an RPC processing when the update arrived, and for a RPC to not match any route in the new config. There have been no reports of this actually happening
- core: Release data frame if it is received before the headers (dc316f7)
Improvements
- Replace jsr305's
CheckReturnValue
with Error Prone's (#11811) (7b5d069) - core: optimize number of buffer allocations for message sizes larger than 1 MB (#11879) (5a7f350)
- core: Update the retry backoff range from [0, 1] to [0.8, 1.2] as per the A6 redefinition (#11858) (44e92e2)
- core: include last pick status in status message when wait-for-ready RPC’s deadline expires (#11851) (7585b16). This makes it much easier to debug connectivity issues when using wait-for-ready RPCs
- xds: Include max concurrent request limit in the error status for concurrent connections limit exceeded (#11845) (0f5503e)
- netty, servlet: Remove 4096 min write buffer size because
MessageFramer
.flush() is being called between every message, so messages are never combined and the larger allocation just wastes memory. (4a10a38, 7153ff8) - core: When
ClientStreamObserver
closes the response observer log the error message if this operation fails (#11880) (302342c) - bom: use gradle java-platform to build pom instead of custom xml generation (#11875) (3142928)
- xds: Reuse filter interceptors on client-side across RPCs (c506190, b3db8c2). This was an internal refactor that should have no user-visible change
- alts: Enhance
AltsContextUtil
to allow getting theAltsContext
on client-side (b1bc0a9) - xds: Envoy proto sync to 2024-11-11 (#11816) (b44ebce)
Documentation
- examples: Update
HelloWorldServer
to use Executor (#11850) (16edf7a) - examples: Add README for all examples lacking it (#11676) (9e86299)