v1.65.0
grpc-netty in this release is compatible with Netty 4.1.111; it fixes the incompatibility that caused data corruption. grpc-netty-shaded is still using Netty 4.1.100.
New Features
- New module grpc-gcp-csm-observability (df8cfe9)
Improvements
- api: Add
ClientStreamTracer.inboundHeaders(Metadata)
(960012d). This is the same as the existinginboundHeaders()
, but is provided the Metadata - api: Fix various typos in the documentation (#11144) (6ec744f)
- core: When queuing RPCs, don’t request picks from the LB twice (8844cf7). This could be viewed as a small performance optimization, but mainly reduces the amount of race-handling code
- util: Improve AdvancedTlsX509KeyManager’s documentation, verification, and testing. (#11139) (781b4c4) This change shows
@ExperimentalApi
being removed, but it was re-added in 3c97245 before the release - examples: Fix broken command in reflection readme (#11131) (c31dbf4)
- binder: Add a connection timeout (#11255) (791f894)
Bug fixes
- core: Exit idle mode when delayed transport is in use (fea577c). This was a long-standing race that could cause RPCs to hang, but was very unlikely to be hit. Avoiding the double-picking (8844cf7) made the race more visible
- netty: Fix Netty composite buffer merging to be compatible with Netty 4.1.111 (#11294) (0fea7dd). The previous behavior easily caused data corruption
- okhttp: Workaround SSLSocket not noticing socket is closed (a28357e). Previously, shutting down when a new connection was being established could result in the server never becoming terminated
- inprocess: Fix listener race if transport is shutdown while starting (e4e7f3a). This issue was unlikely to be hit outside of specialized tests
- services: restore //services:binarylog bazel target (#11292) (d57f271). This fixes a regression introduced in 1.62.2
- binder: Wait for all server transports to terminate before returning the security policy executor to the object pool (#11240) (34ee600)
- binder: Reject further SETUP_TRANSPORT requests post-BinderServer shutdown (#11260) (1670e97)
- bazel: Include missing com_google_protobuf_javalite in MODULE.bazel (#11147) (f995c12)