gRPC Java 1.71.0 Release Notes
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) (176f3eed1)
protobuf: Experimental API marshallerWithRecursionLimit in ProtoUtils is now stabilized (#11884) (90b1c4fe9)
Bug Fixes
xds: Cluster weights should be uint32 (199a7ea3e). 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 (199a7ea3e). 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 (dc316f7fd)
Improvements
Replace jsr305's CheckReturnValue with Error Prone's (#11811) (7b5d0692c)
core: optimize number of buffer allocations for message sizes larger than 1 MB (#11879) (5a7f35053)
core: Update the retry backoff range from [0, 1] to [0.8, 1.2] as per the A6 redefinition (#11858) (44e92e2c2)
core: include last pick status in status message when wait-for-ready RPC’s deadline expires (#11851) (7585b1607). 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) (0f5503ebb)
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. (4a10a3816, 7153ff852)
core: When ClientStreamObserver closes the response observer log the error message if this operation fails (#11880) (302342cfc)
bom: use gradle java-platform to build pom instead of custom xml generation (#11875) (3142928fa)
xds: Reuse filter interceptors on client-side across RPCs (c506190b0, b3db8c248). This was an internal refactor that should have no user-visible change
alts: Enhance AltsContextUtil to allow getting the AltsContext on client-side (b1bc0a9d2)
xds: Envoy proto sync to 2024-11-11 (#11816) (b44ebce45)
Documentation
examples: Update HelloWorldServer to use Executor (#11850) (16edf7ac4)
examples: Add README for all examples lacking it (#11676) (9e8629914)
Dependencies
Version upgrades (#11874) (fc8571a0e)
Upgrade netty-tcnative to 2.0.70 (122b68371)
Thanks to
@benjamin
@panchenko
@harshagoo94
@NaveenPrasannaV