Releases: grpc/grpc-java
Releases · grpc/grpc-java
v1.46.0
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 aio.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
v1.45.1
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
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
v1.44.0
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 toring_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
- Upgraded Protobuf to 3.19.2 to avoid CVE-2021-22569. See the protobuf advisory
- Bump GSON to 2.8.9 (#8759)
- Bump Netty to 4.1.72.Final and tcnative to 2.0.46.Final (#8780)
Acknowledgement
- groakley@
- apolcyn@
- beatrausch@
- danielnorberg@
- jdcormie@
v1.43.2
Dependencies
- Upgraded Protobuf to 3.19.2 to avoid CVE-2021-22569. See the protobuf advisory
v1.42.2
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
- Upgraded Protobuf to 3.18.2 to avoid CVE-2021-22569. See the protobuf advisory
- Upgraded Guava to 30.1.1-android
v1.41.2
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, causingXdsServer
to drain all its existing connections to use the “new” configuration #8736
Dependencies
- Upgraded Protobuf to 3.18.2 to avoid CVE-2021-22569. See the protobuf advisory
- Upgraded Guava to 30.1.1-android
v1.43.1
v1.43.0
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
Acknowledgement
@beatrausch
@benjaminp Benjamin Peterson
@cfredri4
@kdubb Kevin Wooten