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
. Agrpc-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 addgrpc-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
andgoogle-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 togrpc_java_repositories()
within yourWORKSPACE
, you will need to remove those arguments and make sure you rungrpc_java_repositories()
after defining any overridden repositories - bazel: Support maven_install (#6553). See
examples/WORKSPACE
for typical usage. grpc-java still supports thejvm_maven_import_external()
-based loading only to ease migration. grpc-java will drop usages ofjvm_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 tofalse
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
- Aleksei Kandybaev (@akandybaev)
- Dounan Shi (@dounan)
- Elliotte Rusty Harold (@elharo)
- Graeme Morgan (@graememorgan)
- Jiangtao Li (@jiangtaoli2016)
- @markb74
- Nathan H. Leung (@nathanhleung)
- @ST-DDT
- Tomo Suzuki (@suztomo)
- @ZhenLian