Skip to content

v1.12.0

Compare
Choose a tag to compare
@zpencer zpencer released this 09 May 00:15
· 3871 commits to master since this release

Dependencies

  • java_grpc_library (Bazel): re-add grpc-java repo to targets (#4288). This fixes the breakage of java_grpc_library in v1.11.0
  • examples: upgrade protobuf-maven-plugin to 0.5.1 (#4307)

API changes

  • Publicly visible but not yet shipped features (do not use these APIs): ChannelzService, BinaryLogProviderImpl
  • cronet: added CronetChannelBuilder.scheduledExecutorService() so application can be in control of all threads (#4249)
  • netty,okhttp: always set TRANSPORT_ATTR_REMOTE_ADDR (#4217)
  • testing: GrpcServerRule is now a final class (#4264). There should be no reason to extend it
  • core, netty: allow InputStream based server certs (#4316). This adds InputStream overloads for ServerBuilder.useTransportSecurity() and GrpcSslContexts.forServer()

New features

  • netty: Add support for Conscrypt (#3401). Conscrypt may now be selected automatically when it is in the Security provider list
  • okhttp: support JDK9 ALPN (#4136)
  • android: add AndroidChannelBuilder (#4172). This is an Android-oriented builder and able to receive an Android Context.
  • Experimental Service Config Support. This enables live updating of RPC attributes, (such as retries, deadlines, and more). This can be enabled by setting -Dio.grpc.internal.DnsNameResolverProvider.enable_jndi=true and creating the appropriate DNS TXT record. This will be documented more thoroughly in the near future. There are numerous caveats with this feature and thus is not ready for general usage.
  • Experimental Retry Support. This feature depends on service config and both will be documented more thoroughly in the near future. There are numerous caveats with this feature and thus is not ready for general usage. Today, this feature requires disabling Census stats and tracing. (Feedback or suggestions on desired behavior with Census enabled are very welcome!)
  • java_grpc_library: Add support for protobuf lite (#4289). Users can specify flavor=”lite”

Behavior changes

  • core,netty: client sends RST_STREAM when server half-closes (#4222)
  • core: re-add back in orphan wrapper (#4229). A warning will be logged when a ManagedChannel is not shut down properly. The user should wait for awaitTerminated() to return true or call shutdownNow() to avoid the warning
  • cronet: delay cast to ExperimentalCronetEngine (#4230). This restores the v1.11 behavior as a temporary workaround for some tests passing a mocked CronetEngine
  • core: ManagedChannel now has a “panic mode” (#4245). Any internal exceptions (which implies a bug) will cause the channel to permanently enter the TRANSIENT_FAILURE state
  • okhttp: Convert to internal ConnectionSpec eagerly and deprecate OkHttpChannelBuilder.DEFAULT_CONNECTION_SPEC (#4267). After DEFAULT_CONNECTION_SPEC is removed this will save around 40 methods
  • interop-testing: client compressed tests without probing (#4279). For other implementations using the tests for compatibility checking, this allows running some tests in environments where the full set of assertions can’t be checked
  • core: don't reschedule idle timer if it is already active (#4297). This can reduce latency for channels with few concurrent RPCs
  • compiler: allow capitalized java keywords as rpc names (#4309)
  • core: always call StreamTracer.streamClosed() when stream is officially closed. (#4331)
  • core: forward toString for forwarding classes (#4337)
  • all: add toString() to Server to improve debug info (#4340)

Bug fixes

  • netty: support graceful server shutdown by sending 2 GOAWAYs (#4227)
  • grpclb: Cache Subchannels for 10 seconds after it is removed from the backendlist (#4238)
  • okhttp: fix HPACK reader bug (#4276)
  • okhttp: properly verify IPv6 address hosts (#4292)
  • core: fix memory leak when inbound message was not fully read (#4298). This mainly applies to custom message marshallers; it would be very rare for the protobuf marshaller.

Documentation

  • core: added docs about grpc-java-api-checker to README.md and the Internal and ExperimentalApi annotations (#4182)
  • SECURITY.md: Add reference to grpc-netty-shaded (#4185)
  • SECURITY.md: Added more troubleshooting instructions (#4236)
  • protobuf: fix @since for StatusProto.fromStatusAndTrailers (#4287)
  • doc: upgrade protobuf-maven-plugin in README.md (#4295)
  • stub: add docs clarifying flow control readiness (#4342)
  • core: Fix experimental API issue for channel state API to point to #4359 instead of long-closed #28 (#4360)