Skip to content

v1.27.0

Compare
Choose a tag to compare
@ejona86 ejona86 released this 04 Feb 21:26
· 2298 commits to master since this release

Bazel users should migrate to maven_install. Please open an issue to report problems migrating to maven_install.

Dependencies

  • core, census: census dependency is removed from grpc-core. A grpc-census artifact now exists to provide interceptor/stream tracer factory that applies census stats/tracing features. For users not using gRPC’s integration of census, nothing should be affected. Users who want census integration need to add grpc-census artifact to runtime classpath (#6577)
  • Bump animal-sniffer-annotations to 1.18 (#6488)
  • Bump error_prone_annotations to 2.3.4 (#6574)
  • auth: Bump google-auth-library-credentials and google-auth-library-oauth2-http to 0.19.0 (#6537)
  • protobuf: Bump proto-google-common-protos to 1.17.0 (#6572)

Bug Fixes

  • netty: the warning “Received GOAWAY with ENHANCE_YOUR_CALM. Debug data:” will now actually contain the debug data (#6596)
  • examples: example servers now shutdown gracefully (#6512)
  • api: update documentation to encourage libraries to provide scheme in target string during channel creation (#6499)
  • bazel: Use https to download from Maven Central (#6543)
  • bazel: Fix renamed javalite target that caused build failures in 1.26.0 (#6544)

API Changes

  • bazel: Remove omit* args in favor of existing_rule() check (#6553). If you are passing any arguments to grpc_java_repositories() within your WORKSPACE, you will need to remove those arguments and make sure you run grpc_java_repositories() after defining any overridden repositories
  • bazel: Support maven_install (#6553). See examples/WORKSPACE for typical usage. grpc-java still supports the jvm_maven_import_external()-based loading only to ease migration. grpc-java will drop usages of jvm_maven_import_external() in the future

New Features

  • core: delay sending cancel request on client-side by one second when deadline expires (#6328). This only impacts metrics reported by the server. It provides the server a second to internally fail the call with DEADLINE_EXCEEDED instead of CANCELLED which should substantially improve the accuracy of the metrics
  • grpclb: support explicit fallback from LB (#6549)
  • netty: set -Dio.grpc.netty.useCustomAllocator=true by default (#6528). This causes grpc to use a different Netty allocator by default which is configured to allocate in smaller chunks which may reduce memory usage by 8x on lightly loaded systems. Performance benchmarks show virtually no change with any potential slowdowns hidden in the noise (~1%). See also #6407. If you notice problems, set the property to false and file an issue
  • api: support for lazily serialized values in Metadata (#6466). Metadata marshallers must opt-in to being serialized lazily. Nothing is using this support at the moment (including protobufs). This can be used for avoiding serialization with in-process transport or for transport-specific features like file descriptor passing in metadata (such things were already possible with RPC messages).
  • alts: add AuthorizationUtil utility library for verifying a client is a particular account (#6529)
  • examples: hostname example added. This is intended as a test server for use when testing load balancers. It is also available on Docker Hub

Known issues

  • netty: listening on multiple ports (via NettyServerBuilder.addListenAddress()) may deadlock (bug #6641). This has been the case since its introduction

Acknowledgements