Skip to content

v1.40.0

Compare
Choose a tag to compare
@YifeiZhuang YifeiZhuang released this 17 Aug 22:03
· 1332 commits to master since this release

API Changes

  • api: Removed deprecated method ClientStreamTracer.Factory.newClientStreamTracer(CallOptions callOptions, Metadata headers).
  • api: Deprecated ClientStreamTracer.StreamInfo.getTransportAttrs() and ClientStreamTracer.StreamInfo.Builder.setTransportAttrs().
  • api: Added new method ClientStreamTracer.streamCreated(Attributes transportAttrs, Metadata headers).
  • core: Stabilized ManagedChannelBuilder.enableRetry() and ManagedChannelBuilder.disableRetry().

Bug Fixes

  • core: Fix a flow control issue if retry is enabled (#8401).
  • core: Fix a race between client call cancel() and start() if retry is enabled (#8386).
  • xds: Fix the race condition in SslContextProviderSupplier's updateSslContext and close (#8294).
  • xds: If “server_listener_resource_name_template” is not set or xds_v3 is not in use, log an error and fail XdsServer start() instead of NPE.
  • netty: The Netty server produces plain-text error messages for non-gRPC clients. The error pages’ Content-Type incorrectly had encoding=utf-8. It now has charset=utf-8.

New Features

  • compiler: Added GrpcGenerated annotation with CLASS retention to the top-level generated class. This can be used by annotation processors to detect or ignore the generated code.
  • api: Added ServerCallExecutorSupplier experimental API. This allows for a per-service/method executor to handle the server call based on each RPC call information at runtime. (#8266).
  • xds: Added xDS retry support (gRFC-A44).

Behavior Changes

  • core: The gRPC built-in retry feature is enabled by default. (Users can call ManagedChannelBuilder.disableRetry() to turn off retry if they do not want this feature, for example if they have already implemented an application level retry.) ManagedChannelBuilder.enableRetry() will no longer have the side that disables Census stats and tracing as in previous versions.

Dependencies

Improvements

  • api: Clarify the ServerCallHandler API contract in Javadoc (#8339).
  • netty: Allow transparent retries for servers that lack graceful two-stage GOAWAY connection shutdown, such as nginx and gRPC C core. This refined a workaround introduced in 1.34.0 for a Netty header processing GOAWAY bug fixed in 4.1.54.Final, but that we are giving time for the fix to work its way through the ecosystem (#8359).
  • testing: Make more obvious in Javadoc that GrpcServerRule has been replaced.
  • api: Use <scheme,provider> map in nameResoverRegistry. This makes scheme matching more clear and explicit in name resolver API.(#8323).