Finagle v19.6.0 Release Notes

Release Date: 2019-06-19 // almost 5 years ago
  • ๐Ÿ†• New Features

    • finagle-core: SSL/TLS session information has been added to c.t.f.ClientConnection.
      69a28c10
    • finagle-core: Add a Stack Module with 7 parameters for convenience sake. 6f9d7f0d
    • finagle-core: For both, servers and clients, introduce a way to shift application-level future
      callbacks off of IO threads, into a given FuturePool or ExecutorService.
      ๐Ÿ”ง Use withExecutionOffloaded configuration method (on a client or a server) to access
      ๐Ÿ†• new functionality. 40431bb4
    • finagle-http: Added counters for request/response stream as: stream/request/closed,
      stream/request/failures, stream/request/failures/<exception_name>, stream/request/opened,
      stream/request/pending and stream/response/closed, stream/response/failures,
      stream/response/failures/<exception_name>, stream/response/opened, stream/response/pending.
      The counters will be populated when isChunked is set to true, the failures counters will be
      populated when isChunked is set to true and the stream fails before it has been fully read in the
      request and response respectively. d9b69bdc
    • ๐Ÿšš finagle-http: Add two new API variants in CookieMap: addAll and removeAll that allow for
      โž• adding and removing cookies in bulk, without triggering a header rewrite on each item.
      4127cf6d
    • ๐Ÿ‘ finagle-mysql: finagle-mysql now supports using SSL/TLS with MySQL. SSL/TLS can be turned on by
      calling withTransport.tls(sslClientConfiguration) with a specified
      c.t.f.ssl.client.SslClientConfiguration. 0b6c20ac

    โš™ Runtime Behavior Changes

    • โฌ†๏ธ finagle: Upgrade to Netty 4.1.35.Final and netty-tcnative 2.0.25.Final.
      9ffbf7a7
    • 0๏ธโƒฃ finagle-core: The default failure accrual policy has been changed from one
      which uses only consecutive failures to a hybrid model which uses both
      success rate over a window and consecutive failures. Previously this was
      ๐Ÿ”„ changeable via toggle. The toggle has been removed, and the hybrid version
      0๏ธโƒฃ has been made the default. 6f85c56e
    • finagle-http: Rename request_stream_duration_ms to stream/request/duration_ms and
      response_stream_duration_ms to stream/response/duration_ms. The stats will be
      populated when isChunked is set to true in the request and response respectively.
      d9b69bdc
    • ๐Ÿ‘€ finagle-http2: Disable ping-based failure detector in HTTP/2 client as it seems to do
      more harm than good. ea5b0c77
    • 0๏ธโƒฃ finagle-http2: Frame logging is now disabled by default for clients. To enable,
      ๐Ÿ‘‰ use the c.t.f.http2.param.FrameLogging.Enabled Stack Param. For example:
      ๐Ÿ”ง Http.client.configured(FrameLogging.Enabled). 0b2ec201
    • finagle-netty4: When using a Netty LocalChannel, the value of the BackPressure
      stack param is effectively changed to backPressureDisabled so that other functionality
      (e.g. SSL/TLS) works as expected. 3a8e5c19
    • finagle-netty4: finagle/netty/pooling/used now includes the size of the buffers in the
      thread-local caches. 824596f0
    • finagle-core: Stats and retry modules use a ResponseClassifier to give hints
      for how to handle failure (e.g., Is this a success or is it a failure? If
      it's a failure, may I retry the request?). The stats module increments a
      success counter for successes, and increments a failure counter for failures.
      But there isn't a way to tell the stats module to just do nothing. And, this
      is exactly what the stats module should do (nothing) in the case of ignorable
      failures (e.g. backup request cancellations). To represent these cases, we
      introduce a new ResponseClass: Ignorable. 256b79b8

    ๐Ÿ› Bug Fixes

    • finagle-core: UsingSslSessionInfo would fail to be constructed properly when
      SSLSession.getLocalCertificates returns 'null'. 8d984963
    • finagle-http: Finagle now properly sets the Transport.peerCertificate local context
      when using HTTP/2. a661fef4
    • finagle-http: c.t.f.http.collection.RecordSchema.Record is now thread-safe.
      4e343f0e
    • finagle-zipkin-core: Fix a race condition which could cause a span to get logged
      missing some annotations. 53901a28
    • ๐ŸŒฒ finagle-mysql: Don't log c.t.f.ChannelClosedException when rolling back a transaction
      fails. 29cfffe6

    ๐Ÿ’ฅ Breaking API Changes

    • finagle-core: The exceptions c.t.f.SslHandshakeException and
      c.t.f.SslHostVerificationException were no longer used and have
      ๐Ÿšš been removed. 2a53531d
    • finagle-mysql: The structure of c.t.f.mysql.Request has changed. It is now based on
      a higher level c.t.f.mysql.ProtocolMessage and the cmd field must contain a value.
      Additionally, the synthetic Command.COM_NO_OP has been removed, as due to the
      restructuring it was no longer necessary. d6e4042f
    • finagle-mysql: Uses of the abbreivation 'cap' have been renamed to the full
      word: 'capabilities', including for the baseCapabilities of Capability.
      4c57afda

    ๐Ÿ—„ Deprecations

    • ๐Ÿšš finagle-http: Removed deprecated response_size in Finagle Http stats. This is a duplicate stat
      ๐Ÿ›ฐ of response_payload_bytes. 1286c438