Skip to content

v1.33.0

Compare
Choose a tag to compare
@dapengzhang0 dapengzhang0 released this 21 Oct 00:33
· 10 commits to v1.33.x since this release

This release broke ABI in a non-planned way for NettyServerBuilder, NettyChannelBuilder, and similar. See #7552. If you are impacted, please use an earlier version until v1.33.1 is available. A future ABI breakage may be necessary, but will be communicated explicitly at that time.

API Changes

  • netty: The class io.grpc.netty.NettyServerBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractServerImplBuilder
  • netty: The class io.grpc.netty.NettyChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • okhttp: The class io.grpc.okhttp.OkhttpChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • core: The class io.grpc.inprocess.InProcessChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • cronet: The class io.grpc.cronet.CronetChannelBuilder is no longer a subclass of the internal class io.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 from onNext() for streaming responses. Previously the exception was also thrown from onNext() for unary responses and from onComplete(), 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

  • core: Reverted "delay sending cancel request on client-side when deadline expires" which introduced a memory leak (#7105). It could also cause messages to arrive after the call was reported closed (e.g., onMessage() after onClose())
  • 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 of maven_install. v1.27.0 introduced support for maven_install and encouraged users to migrate. See examples/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