github grpc/grpc-java v1.56.0

latest releases: v1.67.0, v1.66.0, v1.63.2...
15 months ago

API Changes

  • api: Stabilize the SynchronizationContext class (#10130).
  • api: Stabilize io.grpc.CallCredentials (#10208, #10211). thisUsesUnstableApi() is @Deprecated and has a default implementation. CallCredentials implementations should delete their implementation or remove @Overrides, as the method will be deleted in the future.
  • api: Stabilize the ProxyDetector hierarchy and ManagedChannelBuilder.proxyDetector method.

Behavior Changes

  • core: Sticky TRANSIENT_FAILURE in PickFirstLoadBalancer (#10106). See gRFC A62. If it can't connect, pick-first will now immediately fail RPCs until after it successfully connects. RPCs will no longer be delayed while it performs those attempts, which previously could cause significant (error) latency. It now also performs reconnect attempts after failure and backoff without prompting; previously it required an RPC to trigger the reconnect. ManagedChannel.idleTimeout (defaults to 30 minutes) still applies and forces the channel idle after a period of no RPCs.
  • stub: Add a null check for responseObserver into the methods for initiating a call that takes a responseObserver argument. This ensures a fail fast with a clearer cause instead of an NPE when the observer is first used.
  • xds: Flip default for RLS being enabled to true for XDS (#10248) (#10252). If there are no RLS configurations in your XDS or you already enabled it with the environment variable this will have no effect. To disable it, set the flag GRPC_EXPERIMENTAL_XDS_RLS_LB to false.
  • xds: Rename weighted_round_robin_experimental LB Policy to weighted_round_robin (#10162).

New Features

  • protobuf,protobuf-lite: Allow to configure protobuf recursion limit (#10094).
  • core: Optional address shuffle in PickFirstLoadBalancer (#10110).
  • xds: pick_first LB configuration (#10181).

Improvements

  • xds: Add error-per-second in weight formula for client-side WRR (#10177).
  • xds: Use application_utilization and fallback to cpu_utilization if unset in weight formula for client-side WRR. (#10256).
  • bazel: The README now mentions Bazel and where to find the example. (#10217).

Bug Fixes

  • binder: Handle unexpected exceptions on binder threads. (#10092.
  • ​​android,binder,cronet: .aar file when publishing. (#10138).
  • api: Fix boundary check in Status.fromCodeValue(). (#10155).
  • core: Don't use system Locale for content-type matching. (#10097).
  • okhttp: Fix signed-byte comparison in server when checking for ASCII in header (#10151). Without fix, authority could contain utf-8.

Dependencies

  • Version pinning (e.g., [1.56.0] instead of 1.56.0) has been removed from POMs, for both Netty and gRPC dependencies. The pinning was unreliable in Maven and ignored in Gradle, yet caused downloads during the build to fetch the version list. For a while we've had a BOM that helps reduce version skew. (#10175).
  • bazel: Add java toolchain type to all rules using java_common. (#10225).
  • Upgraded netty-tcnative-boringssl-static in grpc-netty-shaded to 2.0.61.Final (#10260). Netty itself was not updated.
  • Upgraded AndroidX Annotation to 1.6.0 (#10178).
  • Upgraded AndroidX Core to 1.10.0 (#10178).
  • Upgraded AndroidX Lifecycle-Common to 2.6.1 (#10178).
  • Upgraded OpenCensus to 0.31.1 (#10178).
  • Upgraded Cronet API to 108.5359.79 (#10178).
  • Upgraded proto-google-common-protos to 2.17.0 (#10178).
  • Upgraded Gson to 2.10.1 (#10178).
  • Upgraded PerfMark API to 0.26.0 (#10178).
  • Upgraded RE2/J to 1.7 (#10178).

Acknowledgements

Don't miss a new grpc-java release

NewReleases is sending notifications on new releases.