Finagle v19.2.0 Release Notes

Release Date: 2019-02-21 // about 5 years ago
  • ๐Ÿ†• New Features

    • finagle-core: Added gauge is_marked_dead as an indicator of whether the host is marked
      as dead(1) or not(0) in FailFastFactory. 068a15e6
    • finagle-core: KeyCredentials.CertsAndKey has been added as an option for
      c.t.f.ssl.KeyCredentials for when the certificate and certificate chain are
      contained within the same file. b4a9e8cd
    • finagle-thriftmux: Additional information is now annotated in traces for clients
      using Scrooge generated Thrift bindings. c69a22f8, 32d9b56b,
      6283c6ce.
      This includes:
      • RPC method name
      • Request serialization time, in nanoseconds
      • Request deserialization time, in nanoseconds
      • Response serialization time, in nanoseconds
      • Response deserialization time, in nanoseconds

    ๐Ÿ’ฅ Breaking API Changes

    ๐Ÿšš finagle-http: Removed Http.Client.withCompressionLevel because it wasn't doing anything.
    ๐Ÿ”ง To migrate your client, simply remove the configuration--it had absolutely no effect.
    87944371

    ๐Ÿšš finagle-http: c.t.f.dispatch.ExpiringServerDispatcher was dead code. We removed it.
    ae0571c9

    ๐Ÿšš finagle-thrift: Removed newIface and newServiceIface methods from
    ๐Ÿ—„ c.t.f.thrift.ThriftRichClient.MultiplexedThriftClient, which are deprecated in November 2017.
    773b6e57

    ๐Ÿšš finagle-thrift: Removed deprecated APIs located in Thrift.scala:

    1. c.t.f.Thrift.Client.stats => use c.t.f.Thrift.Client.clientParam.clientStats
    2. c.t.f.Thrift.withProtocolFactory => use c.t.f.Thrift.client.withProtocolFactory
    3. c.t.f.Thrift.withClientId => usec.t.f.Thrift.client.withClientId
    4. c.t.f.Thrift.Server.serverLabel => use c.t.f.Thrift.Server.serverParam.serviceName
    5. c.t.f.Thrift.Server.serverStats => use c.t.f.Thrift.Server.serverParam.serverStats
    6. c.t.f.Thrift.Server.maxThriftBufferSize => use c.t.f.Thrift.Server.serverParam.maxThriftBufferSize
      c6eb2020

    ๐Ÿšš finagle-thrift: c.t.f.thrift.ThriftServiceIface.Filterable is removed, use
    c.t.f.thrift.service.Filterable instead. 23affacc

    ๐Ÿšš finagle-thrift: c.t.f.thrift.ThriftServiceIface is removed, use
    c.t.f.thrift.service.ThriftServicePerEndpoint instead. 23affacc

    ๐Ÿšš finagle-thriftmux: Removed deprecated APIs located in ThriftMux.scala:

    1. c.t.f.ThriftMux.Client.stats => use c.t.f.ThriftMux.Clien.clientParam.clientStats
    2. c.t.f.ThriftMux.Server.serverLabel => use c.t.f.ThriftMux.Server.serverParam.serviceName
    3. c.t.f.ThriftMux.Server.serverStats => use c.t.f.ThriftMux.Server.serverParam.serverStats
    4. c.t.f.ThriftMux.Server.maxThriftBufferSize => use c.t.f.ThriftMux.Server.serverParam.maxThriftBufferSize
      c6eb2020

    ๐Ÿšš finagle-thriftmux: ThriftMux.Client.pushMuxer is removed. Use ThriftMux.Client.standardMuxer
    instead. 90333b1a

    ๐Ÿšš finagle-thriftmux: ThriftMux.serverMuxer is removed. Use ThriftMux.Server.defaultMuxer
    instead. 90333b1a

    ๐Ÿšš finagle-base-http: Removed the c.t.f.http.Statuses java helper, which was deprecated two years
    ago in favor of using c.t.f.http.Status directly. 75a4a209

    ๐Ÿšš finagle-base-http: Removed the c.t.f.http.Versions java helper, which was deprecated two years
    ago in favor of using c.t.f.http.Version directly. f191f1db

    ๐Ÿšš finagle-base-http: Removed the c.t.f.http.Methods java helper, which was deprecated two years
    ago in favor of using c.t.f.http.Method directly. ccf10dbc

    ๐Ÿšš finagle-http: c.t.f.http.Response.Ok was removed. Use just Response() or Response.Proxy
    ๐Ÿคก if you need to mock it. d93bb1c9

    finagle-core: Drv.Aliased and Drv.newVose are now private, please
    construct a Drv instance using Drv.apply or Drv.fromWeights.
    9c810dd3

    ๐Ÿšš finagle-core: c.t.f.BackupRequestLost is now removed. Please use c.t.f.Failure.ignorable
    instead. 02d3d524

    ๐Ÿ› Bug Fixes

    • finagle-http: Fix for a bug where HTTP/2 clients could retry requests that had a chunked
      body even if the request body was consumed. b031e757
    • finagle-http: Fix for a bug where HTTP clients could assume connections are reusable, despite
      having streaming requests in flight. 88a2d0ba

    โš™ Runtime Behavior Changes

    • ๐Ÿšš finagle-core: Faster Filters. Removes unnecessary Service.rescue proxies from
      ๐Ÿ‘€ the intermediate andThen-ed Filters. Previously in rare cases you might have seen
      ๐Ÿ‘ป a raw Exception not wrapped in a Future if the Filter threw. These will now
      ๐Ÿ‘ป consistently be lifted into a Future.exception. a2ddc727
    • โšก๏ธ finagle-core: MethodBuilder metrics filtering updated to now report rolled-up
      logical failures. 6e3bf33f
    • finagle-http: Disabling Netty3 cookies in favor of Netty4 cookies. fccd92c6
    • ๐Ÿšš finagle-http: Removed the debug metrics http/cookie/dropped_samesites and
      http/cookie/flagless_samesites. 2de928ce

    ๐Ÿ—„ Deprecations

    • ๐Ÿ—„ finagle-core: Multi-param legacy tls methods have been deprecated in
      ๐Ÿ— c.t.f.param.ServerTransportParams and c.t.f.builder.ServerBuilder. Users should migrate
      to using the tls(SslServerConfiguration) method instead. fbfc6d1a
    • ๐Ÿ—„ finagle-core: $client.withSession.maxIdleTime is now deprecated; use
      $client.withSessionPool.ttl instead to set the maximum allowed duration a connection may be
      cached for. 0f060e37
    • ๐Ÿ—„ finagle-serversets: c.t.f.zookeeper.ZkResolver has been deprecated in favor
      of c.t.f.serverset2.Zk2Resolver. 9878a9ec