API Changes
- xds: Stabilize CsdsService (#11003) (0d749c5)
- api: Stabilize server.getListenerSockets (#10910) (ff34d51)
- servlet: Introduce ServletServerBuilder.buildServlet(#10921) (257d1c2)
- api: Allow configuration of the queued byte threshold at which a Stream is considered not ready (#10977) (2c83ef0)
New Features
xds, dual stack, happy eyeballs: Support dual stack in xds, change list includes:
- Enable new PickFirst lb policy by default. The new PickFirst implements subchannel picking logic. (#11002) (8a9ce99)
- EDS resource now supports additional addresses (#11011) (38f968f)
- Change address based outlier detection to endpoint based (#10939) (c61fe69)
- Enable Happy Eyeballs by default (#11022) (51f811d)
Improvements
- rls: Adding extra debug logs (#10902) (eba699a)
- binder: Add missing Android API annotations (#10841) (ce2adcc)
- core: Provide DEADLINE_EXCEEDED insights for context deadline (3abab95). When the deadline triggered and the deadline was set on the RPC via the stub or CallOptions, gRPC would gather additional debugging information to help understand where the RPC took so long. However if the deadline came from io.grpc.Context the error was simply “context timed out.” Now the debugging information is provided in both cases
- examples: Fix file paths in debug example README (e19f1f1)
- compiler: implement ability to skip generation of javax annotation (#10927) (0d39c2c). Pass the option JakartaMode=omit to protoc-gen-grpc-java when generating code
- xds: Get rid of xDS v2 proto dependencies (#10968) (feab4e5).
grpc-xds
jar size has decreased by 35%. - xds: Support retrieving names from wrapped resource containers (#10975) (867e469)
- netty: improve server handling of writes to reset streams (#10258) (a68399a)
- api: Fix a typo in ServerInterceptor JavaDoc (#10990) (0b82f01)
- servlet: Check log fine level before hex string conversion. (#11038)
- auth: Specify a locale for upper/lower case conversions (1.63.x backport) #11050
Bug Fixes
- xds: Copy data in least request to avoid picker data race (f4cc166). This fixes a possible regression introduced in 1.60.0. Auditing the buggy code showed it unlikely to cause problems in practice, but that was more by happenstance than by design
- xds: Fix data race in the xds client that contacts the control plane (d7628a3)
- rls: Fix a local and remote race (aa90768). The remote race could cause an RPC to hang until its deadline. It had been seen in practice when the client was severely CPU under-provisioned
- xds: Fix xdsNameResolver virtual host lookup authority with xdstp style names. Use service authority instead of ldsResourceName (#10960) (78b3972)
- core: Fix retry race condition that can lead to double decrementing inFlightSubStreams and so miss calling closed (#11026) (#11033)
- okhttp: Fix OkHTTP client transport leak (#11060)
- xds: Use empty string when disabling server hostname verification ( #11058)
Dependencies
- Upgraded google-auth-library-java to 1.22.0
Acknowledgement
Alex Panchenko
Benjamin Peterson
David Ankin
Prashanth Swaminathan
Touko Vainio-Kaila