Skip to content

Releases: grpc/grpc-java

v1.46.0

28 Apr 16:08
Compare
Choose a tag to compare

Bug Fixes

  • netty: Fixed incompatibility with Netty 4.1.75.Final that caused COMPRESSION_ERROR (#9004)
  • xds: Fix LBs blindly propagating control plane errors (#9012). This change forces the use of UNAVAILABLE for any xDS communication failures, which otherwise could greatly confuse an application. This is essentially a continuation of the fix in 1.45.0 for XdsNameResolver, but for other similar cases
  • xds: Fix ring_hash reconnecting behavior. Previously a TRANSIENT_FAILURE subchannel would remain failed forever
  • xds: Fix ring_hash defeating priority’s failover connection timeout. grpc/proposal#296
  • binder: Work around an Android Intent bug for consistent AndroidComponentAndress hashCode() and equals() (#9061)
  • binder: Fix deadlock when using process-local Binder (#8987). Process-local binder has a different threading model than normal FLAG_ONEWAY, so this case is now detected and the FLAG_ONEWAY threading model is emulated
  • okhttp: Removed dead code in io.grpc.okhttp.internal.Util. This should have no impact except for static code analysis. This code was never used and was from the process of forking okhttp. It calculated things like MD5 which can trigger security scanners (#9071)

Behavior Changes

  • java_grpc_library.bzl: Pass use_default_shell_env = True for protoc (#8984). This allows using MinGW on Windows
  • xds: Unconditionally apply backoff on ADS and LDS stream recreation. Previously if a message had been received on the stream no backoff wait would be performed. This limits QPS to a buggy server to 1 QPS, instead of a closed loop
  • xds: Skip Routes within VirtualHosts whose RouteAction has no cluster_specifier. This probably means the control plane is using a cluster_specifier field unknown/unsupported by gRPC. The control plane can repeat the Route with a different cluster_specifier for compatibility with older clients
  • xds: Support xds.config.resource-in-sotw client capability. Resources wrapped in a io.envoyproxy.envoy.service.discovery.v3.Resource message are now supported (#8997)

New Features

  • gcp-observability: A new experimental module for improving visibility into gRPC workloads. Initially supports logging RPCs to Google Cloud Logging
  • grpclb: Support setting initial fallback timeout by service config (#8980)

Dependencies

  • PerfMark bumped to 0.25.0 (#8948)
  • okhttp: the okhttp dependency is now compile only (#8971). Okhttp’s internal HTTP/2 implementation was forked inside grpc-okhttp a long time ago, but there had been a few stray internal classes that had not been forked but should have been. That has now been fixed in preparation for OkHttp 3/4 support. Compile-only may cause a runtime failure for code using reflection on OkHttpChannelBuilder; add a dependency on okhttp 2.7.4 to resolve
  • bom: Removed protoc-gen-grpc-java from the BOM, as the classifier was confusing and it provided no value (#9020)

Acknowledgements

@jesseschalken
@kluever
@beatrausch

v1.45.1

30 Mar 14:40
Compare
Choose a tag to compare

Bug Fixes

  • netty: Fixed incompatibility with Netty 4.1.75.Final that caused COMPRESSION_ERROR (#9004)
  • xds: Fix LBs blindly propagating control plane errors (#9012). This change forces the use of UNAVAILABLE for any xDS communication failures, which otherwise could greatly confuse an application. This is essentially a continuation of the fix in 1.45.0 for XdsNameResolver, but for other similar cases

v1.45.0

08 Mar 22:09
Compare
Choose a tag to compare

gRPC Java 1.45.0 Release Notes

Bug Fixes

  • rls: fix child lb leak when client channel is shutdown (#8750)
  • rls: fix RLS lb policy name (#8867)
  • testing: fix GrpcCleanupRule issue when retrying tests (#8918)
  • xds: Fix XdsNameResolver blindly propagates control plane errors (#8953). This change forces the use of UNAVAILABLE for any xDS communication failures, which otherwise could greatly confuse an application
  • xds: fix validation code to accept new-style CertificateProviderPluginInstance (#8892)
  • xds: fix a concurrency issue in CSDS ClientStatus responses (#8795)
  • xds: Squelch "Failed to resolve name" ADS reconnection error logs. Workaround for #8886 (#8942)
  • xds: Improve priority failover handling for IDLE subpolicies (#8926). This mainly improves behavior with ring_hash
  • bom: Include grpc-binder
  • binder: Fix a ServiceConnection leak (#8861)
  • binder: Increase fairness across streams when limited by flow control. This can dramatically reduce latency when channel is being used for high throughput (#8835)
  • android: fix for app coming to foreground (#8855)

Behavior Changes

  • Local-only transparent retry is (practically) unlimited now. Previously it was at most once per RPC.
  • xds: implement least_request load balancing policy (#8739)

Dependencies

  • Bump Error Prone Annotations to 2.10.0
  • Bump Guava to 31.0.1-android
  • Bump Google Auth Library to 1.4.0
  • Bump Auto Value to 1.9
  • netty: Include both x86 and Arm64 epoll as dependency for grpc-netty-shaded
  • testing: remove opencensus dependency from grpc-testing (#8833)

v1.44.1

18 Feb 21:46
Compare
Choose a tag to compare

Bug Fixes

  • xds: fix the validation code to accept new-style CertificateProviderPluginInstance wherever used (#8901 fixes #8885)
  • binder: Fix a ServiceConnection leak (#8861 closes #8726)
  • android: fix for app coming to foreground (#8904 closes #8850)

v1.44.0

27 Jan 21:37
Compare
Choose a tag to compare

gRPC Java 1.44.0 Release Notes

Java 7 is no longer supported. This release uses Java 8 bytecode, except for grpc-context which remains on Java 7 bytecode. Users requiring Java 7 are encouraged to use the v1.41.x branch. See gRFC P5. Android support remains API level 19+. If this is expected to cause undue hardship or community issues, please contact us via a GitHub issue or [email protected].

Java 8 users pay note: per gRFC P5, gRPC may drop Java 8 support as soon as March this year. If this is expected to cause undue hardship or community issues, please contact us via a GitHub issue or [email protected].

API Changes

  • Removed deprecated StreamInfo.transportAttrs (#8768)

Bug Fixes

  • core: fix a race condition when calling ManagedChannel#enterIdle() (#8761)
  • xds: rename ring_hash LB Policy to ring_hash_experimental to comply with gRPC A42: xDS Ring Hash LB Policy (#8776)

Behavior Changes

  • Binder: Enclose all operations in BinderTransport even when an exception was thrown. (#8733)*
  • Binder: Fix a bug that might cause memory leaks in binder. (#8728)

Dependencies

Acknowledgement

  • groakley@
  • apolcyn@
  • beatrausch@
  • danielnorberg@
  • jdcormie@

v1.43.2

06 Jan 21:01
Compare
Choose a tag to compare

Dependencies

v1.42.2

06 Jan 21:15
Compare
Choose a tag to compare

Bug Fixes

  • census: fixed a bug which in rare cases, a NullPointerException may be thrown by recordFinishedAttempt(). Users not enabling grpc-census are not impacted by this bug (#8706)
  • core: fix a race condition when calling ManagedChannel.enterIdle() (#8746)

Dependencies

v1.41.2

07 Jan 15:39
Compare
Choose a tag to compare

Bug Fixes

  • core: fix a race condition when calling ManagedChannel.enterIdle() (#8763)
  • xds: stop generating UUIDs for filter chains that lack them. The UUID was preventing the XdsServer from noticing when a control plane sent a needless duplicate update, causing XdsServer to drain all its existing connections to use the “new” configuration #8736

Dependencies

v1.43.1

21 Dec 23:07
Compare
Choose a tag to compare

Bug Fixes

  • core: fix a race condition when calling ManagedChannel#enterIdle() (#8761)

Dependencies

  • Bump GSON to 2.8.9 (#8764)

v1.43.0

15 Dec 18:13
Compare
Choose a tag to compare

API Changes

  • alts: Make GoogleDefaultChannelCredentials take a CallCredentials (#8548)
  • binder: Support BinderChannelBuilder.forTarget (#8633)
  • inprocess: Add support for anonymous in-process servers (#8589)

Bug Fixes

  • census: fixed a bug which in rare cases, a NullPointerException may be thrown by recordFinishedAttempt(). Users not enabling grpc-census are not impacted by this bug (#8706)
  • xds: stop generating UUIDs for filter chains that lack them. The UUID was preventing the XdsServer from noticing when a control plane sent a needless duplicate update, causing XdsServer to drain all its existing connections to use the “new” configuration #8663
  • xds: fix a bug where XdsServer didn’t block start() when configuration is missing, and instead errored. #8660

New Features

  • protoc-gen-grpc-java plugin support for Apple M1 architecture (#7690)
  • okhttp: introduced new TLS1.2 cipher suites and internal okhttp implementation for TLS1.3 prepared (#8650)
  • netty: Add ability to set system property -Dio.grpc.netty.disableConnectionHeaderCheck=false to disable HTTP Connection header check. This is a temporary workaround to allow fixing out-of-spec HTTP/2 clients (#8683)

Dependencies

  • bump guava to 30.1.1-android (#8748)
  • bump protobuf to 3.19.1 (#8748)

Acknowledgement

@beatrausch
@benjaminp Benjamin Peterson
@cfredri4
@kdubb Kevin Wooten