gRPC v1.31.0 Release Notes

Release Date: 2020-08-05 // over 3 years ago
  • This is the 1.31.0 release (galore) of gRPC Core.

    ๐Ÿš€ Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Please consult https://grpc.io/ for all information regarding this product.

    ๐Ÿš€ This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Core

    ๐Ÿš€ The following new xDS functionality is added in this release:

    • โœ… Requests matching based on path (prefix, full path and safe regex) and headers.
    • โœ… Requests routing to multiple clusters based on weights.
    • The features supported in a given release are documented here.

    Other changes:

    • Remove MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL to ensure timely processing of events. (#23535)
    • Include the target name in top-level DNS error messages. (#23493)
    • โœ‚ Remove xds-experimental URI scheme. (#23463)
    • fix memory leak of grpc_resource_user_quota. (#22201)
    • Store ref to the ExternalConnectivityWatcher in external_watchers_ map. (#23418)
    • โšก๏ธ Update grpclb configuration with field "service_name". (#22345)
    • ๐Ÿ›  Fix possible deadlock in RemoveExternalConnectivityWatcher. (#23365)
    • Enable TLS 1.3 in the C-core and all wrapped languages. (#23165)
    • โž• Add message-size check before message decompression with ordering change. (#23293)
    • ๐Ÿ›  Fix race condition caused by simultaneous updates on SSL server handshaker. (#22647)
    • Add missing reset for ping clocks to avoid mistakenly sending GOAWAY frames due to 'too_many_pings'. (#23145)

    C++

    • Simplify makefile: Get rid of "install" rules with pure make, recommend cmake and bazel instead. (#23412)
    • Replaced grpc::string with std::string. (#23350)
    • ๐Ÿ›  Fix wrong version in gRPCConfigVersion.cmake and grpc++*.pc. (#22982)

    C

    • Avoid collisions in cs files generated by Grpc.Tools. (#22869)
    • โž• Add Grpc.Auth support for Google.Apis.Auth.ITokenAccessWithHeaders. (#21616)

    Objective-C

    • ๐Ÿ‘ Objc support PB runtime import override. (#23298)

    Python

    • ๐Ÿ“‡ [Aio] Support tuple and aio.Metadata interaction. (#23556)
    • [Aio] Allows poller to bind to ephemeral loops in multiple threads. (#23377)
    • [Aio] Hide init_grpc_aio and guard async API outside of AsyncIO context. (#23280)
    • [Aio] Implement methods to access auth context and peer info. (#23265)
    • โž• Add protobuf as an "extras" dependency to grpcio package. (#23170)
    • ๐Ÿ“‡ [Aio] Use Metadata type. (#23045)
    • Avoid attribute error in del of _ChannelCallState. (#23176)
    • Default wait_for_ready to True in simple stubs. (#23163)
    • Propagate contextvars to auxiliary threads. (#23107)
    • Simplify channel credentials in simple stubs. (#23153)

    ๐Ÿ’Ž Ruby

    • ๐Ÿ›  Fix ruby protoc plugin when message is in another package. (#23501)
    • ๐Ÿ›  Fix ruby 2.7 keyword arguments deprecation. (#23419)
    • ๐Ÿ’Ž Make sure call creds user callbacks can't kill the ruby call credentials thread. (#23333)
    • ๐Ÿ›  Fix auth plugin context use-after-free in ruby. (#19756)
    • โž• Add verbose logs for details around ruby call creds user callback invocation. (#23327)