v1.36.0
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 APIcreateResolvingOobChannelBuilder(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 usesEquivalentAddressGroup.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 inchannelz.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