gRPC v1.33.0 Release Notes
Release Date: 2020-10-21 // over 4 years ago-
API 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