gRPC v1.22.0 Release Notes

Release Date: 2019-07-02 // almost 5 years ago
  • Dependencies

    • ⬆️ upgrade netty version to 4.1.35 and netty-tcnative version to 2.0.25 (#5818)

    πŸ› Bug Fixes

    • πŸ›  core: fixed #5692: NameResolver refresh not triggered if empty addresses returned
    • services: fix HealthCheckingLoadBalancer.shutdown() (#5887)
    • bazel: fixed a regression in v1.21 where java_grpc_library ignored custom java toolchains (#5844)
    • ALTS connection setup and teardown is more stable, less noisy.
    • netty: some of the less interesting transport level exceptions are now fine level (#5873)
    • βœ… testing: resource leak is fixed for TestUtils#newSslSocketFactoryForCa

    API Changes

    • πŸš€ protobuf-nano was deleted. The Protobuf project dropped support for nano in favor of javalite, which was causing trouble for gRPC’s development. Users of nano can continue using older grpc-protobuf-nano releases, as it only uses stable API. See gRFC L51.
    • πŸ‘€ LoadBalancer API sees a few changes that will help hierarchical implementations:
      • api: LoadBalancer.Helper and Subchannel is now further non-thread-safe. (#5718)
      • api: move SubchannelPicker.requestConnection() to LoadBalancer. (#5751)
      • api: pass Subchannel state updates to SubchannelStateListener rather than LoadBalancer (#5722). Different from the old LoadBalancer#handleSubchannelState(), the new SubchannelStateListener continues to receive updates after LoadBalancer is shutdown. (#5883)
      • api: Subchannel.requestConnection() will print a warning if called outside of sync-context (#5757). We plan to make it throw eventually.
      • api: deprecate Helper.updateSubchannelAddresses() and add equivalent on Subchannel (#5802)
    • πŸ— netty,okhttp: The experimental and long-deprecated enableKeepAlive API was removed from the transport channel builders (#5795). Setting the keep alive settings individually is still available and is stable API. The removed API was actively causing user issues because its defaults were too aggressive for the server’s defaults.
    • api: new method for removing values from Attributes.
    • core: some of the open census tags (method, status tags) are no longer propagated. This may break users who depends on the behavior that these tags propagate through process boundaries. (#5689)

    πŸ†• New Features

    • api: add getters for NameResolver.Args and NameResolverRegistry in LoadBalancer.Helper (#5685) (We are considering deleting getNameResolverRegistry() in the near future. Please reach out to us if you want to keep it).
    • 🌲 netty: can log the stages of connecting (client side only), such as TLS.
    • βž• Added perfmark annotations to RPCs for local tracing.

    πŸ“š Documentation

    • βœ… examples: use test certs for running example-tls (#5763)
    • πŸ”’ SECURITY.md: Add Fedora 30 package installation instructions (#5734)
    • api,stub: Clarify isReady()/onReady() interaction semantics (#5799)
    • examples: TLS examples are easier to run(#5715)

    Acknowledgements