Finagle v22.2.0 Release Notes

  • ๐Ÿ†• New Features

    * ๐ŸŒฒ finagle-logging: Introduced finagle-logging, a new module for SLF4J-integrated
      filters. ``PHAB_ID=D813291``
    
    * ๐ŸŒฒ finagle-logging: Introduced SlowTracesFilter, which observes your requests and
      logs the slowest ones that are also sampled for tracing. ``PHAB_ID=D813291``
    
    * ๐Ÿ”ง finagle-core: Introduced MinSendBackupAfterMs to the stack param Configured in
      BackupRequestFilter and propagated changes to MethodBuilder by adding new versions of idempotent
      function. When traffic load is low, this is useful to increase the delay when backup requests are
      sent and prevent the client from sending unnecessary backup requests. ``PHAB_ID=D825503``
    
    * finagle-core: Added a new annotation `clnt/has_dark_request` in tracing and Finagle
      Local context. The new annotation can be used to indicate whether or not the request
      has a span that is sent to dark service. ``PHAB_ID=D825317``
    
    ๐Ÿ› Bug Fixes
    ~~~~~~~~~~
    
    * finagle-netty4-http: On a Request, adding multiple cookies with the same name
      to a CookieMap preserves all of them. Only cookies on Responses are
      deduplicated. Previously, adding a Request cookie with the same name would
      overwrite the old value with the new value. ``PHAB_ID=D801466``
    
    * ๐Ÿ›  finagle-postgres: Fixed a bug where a single framer instance was shared across all
      connections to a host when using TLS. ``PHAB_ID=D768581``
    
    * ๐Ÿ›  finagle-core: Fixed a bug where `InetResolver` was leaking memory while resolving
      non-existing address, even if no one is still asking for it. ``PHAB_ID=D771608``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • finagle-core: Changed the shouldInvoke parameter in method serviceConcurrently and sendDarkRequest in AbstractDarkRequestFilter to be a Boolean instead of a function of (Req => Boolean). PHAB_ID=D825317

    • finagle-core: Renamed the existing clnt/dark_request to clnt/is_dark_request in c.t.finagle.filter.DarkTrafficFilterPHAB_ID=D825317

    โš™ Runtime Behavior Changes

    
    * finagle: Bump version of Caffeine to 2.9.3. ``PHAB_ID=D815761``
    
    * โฌ†๏ธ finagle: Upgrade to Netty 4.1.73.Final and netty-tcnative 2.0.46.Final.``PHAB_ID=D788382``
    
    * ๐Ÿ‘ป finagle-core: in TimeoutFilter, only transform a timeout exception caused by TimeoutFilter. This also
      changes the type of exception raised by the TimeoutFilter from a java.util.concurrent.TimeoutException
      to a com.twitter.finagle.RequestTimeoutException. ``PHAB_ID=D814094``
    
    * finagle-mux: Exceptions raised when Mux negotiation has failed have been
      moved to a `Debug` log level as the stack trace is generally long and not
      necessarily helpful. The logged message now includes the remote address and
      that is logged at both the `Debug` level (with the exception and stack trace)
      and `Warning` level (without). ``PHAB_ID=D821661``
    
    * ๐Ÿ‘ finagle-core: `c.t.f.ssl.SslConfigurations.initializeSslContext` now creates an engine which includes TLSv1.3 as a supported protocol. ``PHAB_ID=D814211``
    
    * finagle-netty4: `c.t.f.n.ssl.client.Netty4ClientSslConfigurations.createClientContext` and `c.t.f.n.ssl.server.Netty4ServerSslConfigurations.createServerContext` now create contexts using the provided cipher suites. ``PHAB_ID=D732258``