v1.58.0
API Changes
- xds: Add missing ExperimentalApi to OrcaServiceImpl
- stub: Removed deprecated methods attachHeaders and captureMetadata from MetadataUtils (#10443)
- api: Stabilized ServerCall.getAuthority() by removing experimental annotation (#10498)
- api: Stabilized
ServerCall#setMessageCompression()
andPartialForwardingServerCall#setMessageCompression()
(#10393) - protobuf: Stabilize
ProtoUtils.setExtensionRegistry()
andProtoLiteUtils.setExtensionRegistry()
(#10392) - testing: Stabilize
GrpcCleanupRule
,GrpcServerRule
(#10494) - api: Stabilized ServerBuilder.handshakeTimeout (#10499)
- api: Removed Context.Storage deprecated method attach(), made doAttach() abstract (#10379)
- api: Stabilized methodDescriptor getRequestMarshaller, getResponseMarshaller (#10495)
- api, xds: Enabled pick first by default (
GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG
env variable is true by default now) for xds leaf LB policy (#10475)
Behavior Changes
- rls: Have RLS's LRU Cache rely on cleanup process to remove expired entries (#10400)
- core, inprocess, util: 2 new artifacts grpc-inprocess and grpc-util have been created by moving code from grpc-core to facilitate Java module support (#10362, #10390)
- all: Automatic module name support added to all artifacts (#10413)
- xds: Encode the service authority in XdsNameResolver (#10207)
- stub: When using BlockingServerStream, in some cases the request will be sent to the server when the RPC is created where previously it always waited until
next()
orhasNext()
had been called to send the request.
Improvements
- api: In Javadoc, link to gRFCs A8/A9 for keepalive and related settings
- okhttp: Enable support for being returned by
Grpc.newServerBuilderForPort()
. At present, Netty always has higher priority than OkHttp, if they are both available, becauseServerBuilder.forPort()
is not supported in the OkHttp transport but is supported in the Netty transport - bazel: Enhance java_grpc_library.bzl to allow toolchain to use annotation processors
- examples: Add pre-serialized-message example (#10112)
- examples: Android examples to use AGP 7.4.0 (#10497)
Bug Fixes
- Fix compatibility with Java 8. This fixes the
NoSuchMethodError
forByteBuffer
methods present in 1.57.0 (#10441) - xds: Remove debug assert in WeightedRoundRobinLoadBalancer. The assert was to detect breakages in the static stride algorithm causing too much looping. However, with multithreading it is possible to trigger even in legitimate scenarios (#10437)
- util: Outlier detection tracer delegation (#10459)
- Handle header with errors and endStream = true. Was filling logs with NPEs. (#10384)
- core: Fix a retriablestream bug that may cause deadlock with OkHttp (#10386)
- stub: Remove ThreadlessExecutor from BlockingServerStream to eliminate the problem where sometimes the iterator’s next() method would get stuck. (#10496)
- compiler: Fix aarch_64 macs not being able to build the compiler module. (#10516)
- okhttp: Use padded length for flow control in both client and server transport (#10422)
- xds: Fix locality logging information in bootstrap (#10423)
Dependencies
- Upgraded protobuf to 3.24.0
- android: Min SDK level to 21 (#10505)
- Various dependency upgrades (#10359):
androidx.core:core 1.10.0 -> 1.10.1 com.google.api.grpc:proto-google-common-protos 2.17.0 -> 2.22.0 com.google.cloud:google-cloud-logging 3.14.5 -> 3.15.5 com.google.errorprone:error_prone_annotations 2.18.0 -> 2.20.0 com.squareup.okio:okio 1.17.5 -> 2.10.0
Acknowledgements
Halvard Skogsrud