github grpc/grpc-java v1.71.0
V1.71.0

one day ago

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 the AltsContext 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)

Dependencies

Thanks to

@benjamin
@panchenko
@harshagoo94
@NaveenPrasannaV

Don't miss a new grpc-java release

NewReleases is sending notifications on new releases.