Skip to content

v1.36.0

Compare
Choose a tag to compare
@ejona86 ejona86 released this 24 Feb 01:07
· 1892 commits to master since this release

API Changes

  • Added .class file hack to ease removal of internal ABIs (#7834). This does not impact source code (API); it only impacts code compiled with a different version of gRPC than it runs with (ABI). Users of the transport-specific and experimental channel/server builders (NettyChannelBuilder, NettyServerBuilder, OkHttpChannelBuilder, InProcessChannelBuilder, CronetChannelBuilder) are commonly referencing internal ABIs due to overly-specific generics in gRPC. There is now a .class file hack in place which preserves ABI compatibility for old builds while causing javac to use the intended public API for new builds. In a future release we will remove the internal ABI for these experimental APIs (#7211) which may cause runtime failures. Recompiling with this release or later will prevent your code from using those ABIs and so you will not be impacted by the ABI removal. This is related to the temporary ABI breakage in v1.33.0.
  • Deleted deprecated LoadBalancer.Helper APIs as they had been deprecated since v1.22 release (#7793).
  • Deprecated LoadBalancer.Helper.createResolvingOobChannelBuilder(String target) in favor of the new experimental API createResolvingOobChannelBuilder(String target, ChannelCredentials creds). The two APIs differ not only in signature but also in the default authority of the returned builder. See their javadoc for more detail.

Behavior Changes

  • ManagedChannelBuilder.overrideAuthority() is now used even if the NameResolver uses EquivalentAddressGroup.ATTR_AUTHORITY_OVERRIDE. Previously the NameResolver’s override would be used
  • grpclb: keep RR Subchannel state in TRANSIENT_FAILURE until becoming READY (#7816). This enhancement was previously made to the round_robin policy, but now also applies to grpclb
  • netty: On server-side, stop logging expected STREAM_CLOSED exceptions. This reduces log pollution

New Features

  • services: Add support for grpc.channelz.v1.Channelz.GetServer, as defined in channelz.proto
  • xds: support reading bootstrap config directly from env var (GRPC_XDS_BOOTSTRAP_CONFIG) or system property (io.grpc.xds.bootstrapValue) values
  • alts: Introduce AltsContext to allow outside packages access to ALTS peer information

Bug Fixes

  • core: Fixed a bug where RPCs queued waiting for a connection can use user-provided executors after the ManagedChannel is terminated (#6283)
  • core: Fixed a bug where RPCs queued waiting on CallCredentials can use user-provided executors after the ManagedChannel is terminated (#7813)

Documentation

  • api: add nullable annotation to Status.trailersFromThrowable (#7856). The annotation doesn’t change behavior, it just makes the behavior more clear

Dependencies

  • alts: Remove dependency on Apache Commons Lang

Acknowledgements

@elharo Elliotte Rusty Harold
@lriuui0x0 Rui Liu
@martin-schaub Martin Schaub
@njhill Nick Hill
@ReginFell Serhii Zabelnykov