All Versions
38
Latest Version
Avg Release Cycle
22 days
Latest Release
1575 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v1.34.0 Changes
December 02, 2020π gRPC Java 1.34.0 Release Notes
API Changes
api: added
io.grpc.ForwardingServerBuilder
(#7633)π New Features
- β Added ChannelCredentials and ServerCredentials. They are safe for production but are Experimental APIs to resolve issues discovered as they see usage. The rationale and description of the new API can be found in gRFC L74. In short, these APIs are intended to βreplaceβ the implicit security defaults of channels/servers as well as the
usePlaintext()
anduseTransportSecurity()
methods on the channel and server builders. The previous APIs are stable so will not be removed, but are expected to be deprecated in the future. Since these new APIs will be widely used, we encourage users to try the APIs out and report any problems experienced so they can be corrected before the APIs become stable (#7294, #7601) - π As part of ChannelCredentials and ServerCredentials there are now XdsChannelCredentials and XdsServerCredentials added that can be used to enable use of XDS provided credentials on the channel and server. A File-watcher certificate provider has been implemented to support these Xds Credentials. The example in example-xds has been enhanced to be a full xDS example with XdsChannelCredentials and XdsServerCredentials to illustrate their usage. (#7497, #7636)
- π xds: added support for setting bootstrap file with java system property (#7620)
π Bug Fixes
- π» netty: abrupt GOAWAY should not cause INTERNAL status. It is now UNAVAILABLE. This was a regression introduced in v1.33.0. The error was in the form
StatusRuntimeException: INTERNAL: http2 exception
with a cause similar toHttp2Exception$StreamException: Cannot create stream 222691 greater than Last-Stream-ID 222689 from GOAWAY.
This was mainly observed when a C core-based gRPC server shut down. (#7501) - π core, netty, okhttp, cronet: fixed builders ABI backward compatibility broken in v1.33.0 (#7552). For details, see v1.33.1 release note.
- core: round robin should ignore name resolution error for channel state change when there are READY subchannels (#7595). Previously the round_robin load balancing policy puts the Channel into TRANSIENT_FAILURE if encountering name resolution failures even if it has received usable addresses.
- π core: fixed floating-point number formatting Locale in error messages (#7473)
- android: make Channel always enterIdle() upon network recover (#7611). This is for AndroidChannelBuilder. It avoids failing new RPCs prematurely when the device detects the network has recovered while resuming connections.
- β± xds: only reschedule time for unresolved resources upon ADS stream restarts (#7582). The management server can choose not to send resources it has previously sent when the RPC stream is recreated. So the client will keep using resources it has saved previously.
- alts: create handshaker RPC lazily (#7630). Previously the handshake RPCs start before the TCP connection is established, which might be leaked forever if the connection is never established.
π Documentation
- api: added implementation note regarding server interceptors and thread locals (#7482)
- api: clarify expectations regarding
ServerCall#close
(#7580)
Behavior Changes
- netty: differentiate GOAWAY closure status descriptions (#7502). Previously many different GOAWAY-related errors all produced the same status description. Now they each should use their own specific description which should allow distinguishing between issues like weak server GOAWAY behavior, MAX_CONCURRENT_STREAMS interfering with eager transport selection, and local races. We now also use UNAVAILABLE in more cases, although the cases that benefit should be rare
- π xds: added support case insensitive path matching (#7506). The xDS traffic splitting now supports the case-insensitive option for path matching.
- 0οΈβ£ alts: add a timeout to AltsHandshakerStub. A default of 20 seconds is used (#7589)
Dependencies
- all: bumped google auth libraries to version 0.22.0 (#6652)
Acknowledgements
- β Added ChannelCredentials and ServerCredentials. They are safe for production but are Experimental APIs to resolve issues discovered as they see usage. The rationale and description of the new API can be found in gRFC L74. In short, these APIs are intended to βreplaceβ the implicit security defaults of channels/servers as well as the
-
v1.33.1 Changes
November 02, 2020π gRPC Java 1.33.1 Release Notes
π Bug Fixes
- π Fix builders ABI backward compatibility broken in v1.33.0, see #7552
- netty: The class
io.grpc.netty.NettyServerBuilder
reverted to extend internal classio.grpc.internal.AbstractServerImplBuilder
- netty: The class
io.grpc.netty.NettyChannelBuilder
reverted to extend internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- okhttp: The class
io.grpc.okhttp.OkhttpChannelBuilder
reverted to extend internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- core:
The class io.grpc.inprocess.InProcessChannelBuilder
reverted to extend internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- cronet: The class
io.grpc.cronet.CronetChannelBuilder
reverted to extend internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- netty: The class
- βͺ api:
ForwardingServerBuilder
reverted until the permanent fix of the issue with ABI compatibility of delegating classes - okhttp: exclude Internal* from javadoc
- π» netty: Abrupt GOAWAY should not cause INTERNAL status. It is now UNAVAILABLE. This was a regression introduced in v1.33.0. The error was in the form
StatusRuntimeException: INTERNAL: http2 exception
with a cause similar toHttp2Exception$StreamException: Cannot create stream 222691 greater than Last-Stream-ID 222689 from GOAWAY.
This was mainly observed when a C core-based gRPC server shut down. - core: fix floating-point number formatting Locale
- π Fix builders ABI backward compatibility broken in v1.33.0, see #7552
-
v1.33.0 Changes
October 21, 2020API Changes
- netty: The class
io.grpc.netty.NettyServerBuilder
is no longer a subclass of the internal classio.grpc.internal.AbstractServerImplBuilder
- netty: The class
io.grpc.netty.NettyChannelBuilder
is no longer a subclass of the internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- okhttp: The class
io.grpc.okhttp.OkhttpChannelBuilder
is no longer a subclass of the internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- core:
The class io.grpc.inprocess.InProcessChannelBuilder
is no longer a subclass of the internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- cronet: The class
io.grpc.cronet.CronetChannelBuilder
is no longer a subclass of the internal classio.grpc.internal.AbstractManagedChannelImplBuilder
- π api: Add ForwardingServerBuilder: a ServerBuilder that delegates to another builder by default
- core: Add accessor for bare method name in MethodDescriptor (#7339)
- π» stub: On server-side when an RPC is cancelled, only throw
StatusRuntimeException: CANCELLED
fromonNext()
for streaming responses. Previously the exception was also thrown fromonNext()
for unary responses and fromonComplete()
, which didnβt help the server avoid unnecessary processing - okhttp: OkHttpChannelBuilder made final and can no longer be anonymous
- π api, core: delete io.grpc.LoadBalancer.loadBalancingConfig attribute (#7440). The attribute was deprecated in v1.27.0, now it is completely deleted.
π New Features
- π netty: Add support for IBMJSSE2 (#7422)
π Documentation
- π API documentation (Javadoc) for Server and Channel builders now correctly displays inherited methods and the class hierarchy
π Bug Fixes
- π grpclb: Fixed a bug that RPC might be hanging when using grpclb balancer as a child balancer in a hierarchical load balancer tree (#7434)
- netty: TCP close during TLS handshake should be UNAVAILABLE, not UNKNOWN
- netty: BDP ping accounting should occur after flow control. This resolves an incompatibility issue introduced in v1.30.0 and could be worked around via
GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false
introduced later. The symptom was a GOAWAY with βtoo_many_pingsβ without an aggressive keepalive configured. The environment variable is still available, but will be removed in the future
Behavior Changes
- xds: Xds server channel credential option will be required in the xDS bootstrap file. Use
{"type":"insecure"}β
for plaintext (#7396)
Dependencies
- π benchmarks: Removed -javaagent jvm option in CreateStartScripts, to allow running the benchmarks without building from source
- β¬οΈ Upgrade Conscrypt to 2.5.1
- π bazel: Remove Maven repositories from
repositories.bzl
, in favor ofmaven_install
. v1.27.0 introduced support formaven_install
and encouraged users to migrate. Seeexamples/WORKSPACE
for an example.maven_install
dramatically reduces the boilerplate for maven dependencies and properly handles transitive dependencies and version selection. gRPC is not yet using the@maven
workspace, so it is still possible to use other dependency tools. - β‘οΈ Update protobuf gradle plugin version to 0.8.13 (#7355)
Acknowledgements
@codeblooded Benjamin Reed
@kiwi1969 Russell Shaw
@pkern Philipp Kern - netty: The class
-
v1.32.2 Changes
October 12, 2020π Bug Fixes
- netty: TCP close during TLS handshake should be UNAVAILABLE, not UNKNOWN
- netty: BDP ping accounting should occur after flow control. This resolves an incompatibility issue introduced in v1.30.0 and could be worked around via
GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false
introduced later. The symptom was a GOAWAY with βtoo_many_pingsβ without an aggressive keepalive configured. The environment variable is still available, but will be removed in the future - π alts: Reverted workaround for Conscrypt cipher performance. Conscrypt 2.5.0 has significantly improved performance and the workaround now decreases performance. Note that grpc-alts itself still depends on Conscrypt 2.2.1 to remain stable for this bug fix release, but users are encouraged to use newer a version of Conscrypt. The gains from Conscrypt 2.5.0 are significantly greater than what the workaround provided
-
v1.32.1 Changes
September 10, 2020API Changes
- π api: Removed deprecated method
ChannelBuilder.blockingExecutor()
(#7242). There should not be any users as it was deprecated the first release it was available and was renamedoffloadExecutor()
. - grpclb: Make ATTR_LB_ADDRS public (#7230). This is necessary to configure grpclb from a custom NameResolver
π New Features
- xds: perform header matching on concatenated multi-valued headers (#7215)
- xds: add header matching special cases for hiding/exposing some gRPC headers (#7224). The only gRPC header available for header matching is βcontent-typeβ.
- xds: support load reporting all clusters option and fix actual report interval measurement (#7209). If the LRS response enables send_all_clusters, the client side will report loads for all clusters it is currently using.
π Bug Fixes
- π core, alts, cronet: Fix ByteBuffer covariant method usages (#7349). When built with Java 9+, internal usages of ByteBuffer APIs may cause runtime breakage for dependent applications running with Java 8. This is fixed now.
- π§ core: Fixed a bug that RPC may hang when hedging is enabled with a throttling configuration (#7337)
- netty: The environment variable
GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false
will now disable the BDP monitoring introduced in v1.30.0. This is intended to help diagnose a βtoo_many_pingsβ compatibility issue and will be removed once it is resolved. If you need to use the variable, please file an issue - benchmarks: Use correct classpath for scripts (the ones in the bin/ folder of the tar/zip), fixing NoClassDefFoundErrors. The classpath was probably broken starting in v1.30.
- β‘οΈ xds: routing policy should immediately update a picker that selects base on updated config (#7233)
Dependencies
- β¬οΈ netty: Upgrade to Netty 4.1.51 and tcnative 2.0.31
- π android, cronet: Drop support for android SDK versions older than 16 (#7253). The minimum supported Android SDK version is 16.
Acknowledgements
- π api: Removed deprecated method
-
v1.32.0 Changes
September 10, 2020π This release is effectively the same as v1.32.1, but encountered a bug in the release process that prevented publishing binaries. Use v1.32.1 instead.
-
v1.31.1 Changes
August 12, 2020π Bug Fixes:
- netty: The environment variable
GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false
will now disable the BDP monitoring introduced in v1.30.0. This is intended to help diagnose a βtoo_many_pingsβ compatibility issue and will be removed once it is resolved. If you need to use the variable, please file an issue - π examples: some gRPC artifacts are missing in JCenter causing Android examples to sometimes fail to build. Now we are adding mavenCentral as fallback for the Android examples. See #5782
- π¦ xds: meshCA protocol buffers added in v1.31.0 are now properly shaded in an internal package
- π xds: fixed some internal breakage for traffic splitting
- netty: The environment variable
-
v1.31.0 Changes
July 30, 2020API Changes
- π api:
ManagedChannelBuilder.nameResolverFactory
is now marked deprecated. It has long been our plan to remove the function, but was not communicated. Most usages should be able to globally register via the SPI mechanism orNameResolverRegistry.register()
. There is a plan to add a method toManagedChannelBuilder
to specify the default target scheme for the channel. If your use-case is not covered, please inform us on #7133
π New Features
- π The following new xDS functionality is added in this release:
- π§ api: Added
LoadBalancer.Helper.createResolvingOobChannelBuilder()
. It is similar toLoadBalancer.Helper.createResolvingOobChannel()
except allows configuring the channel (#7136)
π Bug Fixes
- netty: return status code unavailable when netty channel has unresolved InetSocketAddress (#7023)
- core: fix a bug that a call may hang when using manual flow control and gRPC retry is enabled (#6817)
π Documentation
- stub: Documented more behavior of ClientCalls and ServerCalls, with regard to ClientResponseObserver, ClientCallStreamObserver, ServerCallStreamObserver, and exceptions
- π api: Documented how Providers may be used in their respective class documentation. Previously you βjust had to knowβ the SPI mechanism was available
Dependencies
- β‘οΈ Update guava to 29.0 (#7079)
Examples
- examples: Add client/server retrying example via service config #7111
Acknowledgements
@alexanderscott
@AnarSultanov
@cindyxue
@d-reidenbach
@elharo
@gsharma
@reggiemcdonald - π api:
-
v1.30.2 Changes
June 23, 2020π Bug Fixes
- xds: disable code for a future xds feature
-
v1.30.1 Changes
June 19, 2020π Bug Fixes
- π all: remove grpc-rls from grpc-all dependencies (#7118). grpc-rls is not intended to be published yet, projects depending on grpc-all gets a "failed to collect dependencies at io.grpc:grpc-all:jar:1.30.0 -> io.grpc:grpc-rls:jar:1.30.0" error. This is fixed here.
- core: fix a bug that a call may hang when using manual flow control and gRPC retry is enabled. (#6817)