Finagle v19.4.0 Release Notes

Release Date: 2019-04-18 // about 5 years ago
  • 19.4.0

    ๐Ÿ†• New Features

    • ๐Ÿ”ง finagle-core: Make maxDepth in Namer configurable. 03cc3197
      • namerMaxDepth in Namer now configurable through a global flag (namerMaxDepth)
    • finagle-core: The newly renamed SslSessionInfo is now public. It is
      intended for providing information about a connection's SSL/TLS session.
      811fe004
    • finagle-core: Added the c.t.finagle.DtabFlags trait which defines a Flag and function for
      appending to the "base" c.t.finagle.Dtab delegation table. 675630df
    • ๐Ÿ‘ finagle-http: Finagle HTTP implementation now supports trailing headers (trailers). Use
      c.t.f.http.Message.trailers to access trailing headers on a fully-buffered message
      ๐Ÿ›ฐ (isChunked == false) or c.t.f.http.Message.chunkReader on a message with chunked payload
      (isChunked == true). 351c43c1
    • finagle-http,thriftmux: Added tracing annotations to backup requests. 48f54e82
      • Binary annotation "srv/backup_request_processing", when servers are processing backup requests.
    • finagle-http: Added new server metrics to keep track of inbound requests that are rejected due to
      their headers containing invalid characters (as seen by RFC-7230): rejected_invalid_header_names
      and rejected_invalid_header_values. 41bd061a
    • finagle-http: Added stats of the duration in milliseconds of request/response streams:
      request_stream_duration_ms and response_stream_duration_ms. They are enabled by using
      .withHttpStats on Http.Client and Http.Server 916f4a26
    • finagle-mysql: A new toggle, "com.twitter.finagle.mysql.IncludeHandshakeInServiceAcquisition", has
      ๐Ÿšš been added. Turning on this toggle will move MySQL session establishment (connection phase) to be
      part of service acqusition. fe4d8919

    โš™ Runtime Behavior Changes

    • ๐Ÿ“š finagle-core: Client-side nacking admission control now defaults on. See the documentation
      on c.t.f.filter.NackAdmissionFilter for details. This can be disabled by setting the
      global flag, com.twitter.finagle.client.useNackAdmissionFilter, to false.
      aa36f56b
    • ๐Ÿšค finagle-core: LatencyCompensation now applies to service acquisition. 1ec020a5
    • finagle-http: HTTP headers validation on the outbound path is now in compliance with RFC7230.
      5b2e9f95
    • 0๏ธโƒฃ finagle-netty4: Netty's reference leak tracking now defaults to disabled.
      Set the flag com.twitter.finagle.netty4.trackReferenceLeaks to true to enable.
      f63d7f7a

    ๐Ÿ’ฅ Breaking API Changes

    finagle: Dropped a dependency on Netty 3:

    ๐Ÿšš finagle-netty3 sub-project has been removed

    ๐Ÿšš finagle-http-cookie sub-project has been removed

    0๏ธโƒฃ c.t.f.http.Cookie no longer takes Netty's DefaultCookie in the constructor
    03c773a5

    finagle-core: The peerCertificate methods of c.t.f.t.TransportContext and
    c.t.f.p.PushChannelHandle have been replaced with the more robust
    sslSessionInfo. Users looking for just the functional equivalence of
    peerCertificate can use sslSessionInfo.peerCertificates.headOption.
    dc4bfbcf

    finagle-core: The com.twitter.finagle.core.UseClientNackAdmissionFilter toggle
    has been replaced by a global flag, com.twitter.finagle.client.useNackAdmissionFilter.
    aa36f56b

    finagle-thrift: Allow users to specify stringLengthLimit and containerLengthLimit 233150a9

    • method parameter readLength in com.twitter.finagle.thrift.Protocols#binaryFactory renamed to stringLengthLimit to reflect usage
    • method parameter containerLengthLimit added to com.twitter.finagle.thrift.Protocols#binaryFactory