Skip to content

v1.29.0

Compare
Choose a tag to compare
@dapengzhang0 dapengzhang0 released this 22 Apr 02:51
· 2144 commits to master since this release

Behavioral Changes

  • core, grpclb: change policy selection strategy for Grpclb policy (move logic of querying SRV into Grpclb's own resolver) (#6723). System property io.grpc.internal.DnsNameResolverProvider.enable_grpclb is eliminated, grpc-grpclb dependency implicitly enables querying SRV records since v1.24.2

New Features

  • core: ServerInterceptors.useInputStreamMessages() now preserves the KnownLength interface when wrapping InputStream (#6852). This should prevent certain optimizations from being disabled when using useInputStreamMessages
  • core: ServerInterceptors.useInputStreamMessages() and useMarshalledMessages() now preserve the SchemaDescriptor, so the methods are now compatible with the reflection service (#6851)

Bug Fixes

  • core: Fix IllegalStateException if remote-specified decompressor is unknown (#6864)
  • core: keep round_robin lb subchannel in TRANSIENT_FAILURE until becoming READY (#6657). This avoids RPC being indefinitely queued when subchannels are bouncing back and forth between CONNECTING and TRANSIENT_FAILURE
  • netty: fixed a bug when grpc-netty and grpc-netty-shaded were both used, which could result in "ClassCastException: io.netty.util.AsciiString cannot be cast to io.grpc.netty.shaded.io.netty.util.AsciiString" (#6765)
  • netty: Prevent thread interruption during server start from leaking socket (#6867)
  • core: A Java 9+ ABI compatibility issue with java.nio.ByteBuffer is fixed (#6839). This only impacted users manually compiling grpc-java with JDK 9+ and then using it as a library for applications that run with JDK 8- (e.g., on Android). This does not impact the pre-built JARs on Maven Central
  • core: fixed a bug in health check config propagation. (#6804)
  • benchmarks: some netty benchmarks failed to start and are now fixed (#6877). This was a regression introduced in v1.23.0

Documentation

  • Add Javadoc for grpc-services and grpc-grpclb to the grpc-all project. This increases the number of classes shown at https://grpc.io/grpc-java/javadoc/
  • examples: Add a JWT authentication example (#5915)

Dependencies

  • Bump guava to 28.2-android (#6772)
  • Bump netty to 4.1.48.Final, bump tcnative to 2.0.30.Final (#6845)
  • Bump truth version to 1.0.1 (#6754)

Compiling

  • android: add grpc-android into main build (#6793). Compiling with -PskipAndroid=false (default) includes building grpc-android module, which requires Android SDK

Acknowledgements

@chrisschek
@elharo Elliotte Rusty Harold
@herbyderby Chris Nokleberg
@markb74
@ST-DDT