Skip to content

Finagle 19.6.0

Compare
Choose a tag to compare
@finaglehelper finaglehelper released this 19 Jun 21:22
· 1413 commits to develop since this release

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
  • 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
    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
  • 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