Skip to content

Releases: twitter/finagle

Finagle 19.4.0

18 Apr 22:14
Compare
Choose a tag to compare

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

    • 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

Finagle 19.3.0

13 Mar 21:27
Compare
Choose a tag to compare

New Features

  • finagle-core: Added tracing annotations to backup requests. 5201f623
    • Timestamped annotation "Client Backup Request Issued"
    • Timestamped annotation "Client Backup Request Won" or "Client Backup Request Lost"
    • Binary annotation "clnt/backup_request_threshold_ms", with the current value of the
      latency threshold, in milliseconds
    • Binary annotation "clnt/backup_request_span_id", with the span id of the backup request

Breaking API Changes

  • finagle-core: Deprecated multi-param legacy tls methods have been removed in
    c.t.f.param.ServerTransportParams and c.t.f.builder.ServerBuilder. Users should migrate to
    using the tls(SslServerConfiguration) method instead. ca646bd8

Runtime Behavior Changes

  • finagle-core: The tracing annotations from MkJvmFilter have been enhanced. 0586f657
    • Timestamped annotations "GC Start" and "GC End" for each garbage collection event
      that occurred during the request.
    • Binary annotation "jvm/gc_count", with the total number of garbage collection events
      that occurred during the request.
    • Binary annotation "jvm/gc_ms", with the total milliseconds of garbage collection events
      that occurred during the request.

Finagle 19.2.0

21 Feb 23:28
Compare
Choose a tag to compare

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

Finagle 19.1.0

10 Jan 21:02
Compare
Choose a tag to compare

New Features

  • finagle-core: c.t.f.s.StackBasedServer has been changed to extend the
    c.t.f.Stack.Transformable trait. This brings StackBasedServer into parity
    with c.t.f.c.StackBasedClient, which already extends the
    Stack.Transformable trait. 9f637b5e
  • finagle-http: HttpMuxer propagates the close signal to the underlying handlers.
    6475680d

Breaking API Changes

  • finagle-core: The deprecated c.t.f.b.ServerBuilder.stack method which takes a function
    has been removed. Uses of this method should be changed to use the c.t.f.b.ServerBuilder.stack
    method which takes a c.t.f.s.StackBasedServer instead. a05e5e7b
  • finagle-core: The type of c.t.f.b.ServerConfig.nilServer has been changed from
    Server[Req, Rep] to StackBasedServer[Req, Rep]. 4be953d4
  • finagle-core: The access level of the c.t.f.b.ServerBuilder.copy method has changed
    from protected to private. 4be953d4
  • finagle-core: The bridge type c.t.f.b.Server has been removed. Users should
    change to use c.t.f.ListeningServer instead. Uses of the previously
    deprecated Server.localAddress should use ListeningServer.boundAddress
    instead. eb66ee71
  • finagle-core: The deprecated c.t.f.t.Transport.localAddress and
    c.t.f.t.Transport.remoteAddress methods are now final and can no longer
    be extended. Users should migrate to the respective c.t.f.t.TransportContext
    methods. b85f43a0
  • finagle-thrift: The c.t.f.t.ThriftRichClient.protocolFactory and
    c.t.f.t.ThriftRichServer.protocolFactory methods have been removed. Users should
    switch to using ThriftRichClient.clientParam.protocolFactory and
    ThriftRichServer.serverParam.protocolFactory instead. In addition, implementations
    of the protocolFactory method have been removed from the concrete c.t.f.Thrift
    and c.t.f.ThriftMux client and server. e33baf82

Bug Fixes

  • finagle-core: Failed writes on Linux due to a remote peer disconnecting should now
    be properly seen as a c.t.f.ChannelClosedException instead of a
    c.t.f.UnknownChannelException. 8f5774cb
  • finagle-http: Compression level of 0 was failing on the server-side when speaking h2c.
    Updated so that it can handle a request properly. 5f96fcb2
  • finagle-thriftmux: A Java compatibility issue for users trying to call withOpportunisticTls
    on ThriftMux clients and servers has been fixed. e57d2a91

Runtime Behavior Changes

  • finagle-core: ServiceFactory.const propagates the close from the ServiceFactory
    to the underlying service, instead of ignoring it. 6475680d

Finagle 18.12.0

12 Dec 00:57
Compare
Choose a tag to compare

18.12.0

New Features

  • finagle-redis: Add support for the new stream API released in Redis 5.0. ba578c14
  • finagle-core: Add Java compatibility for c.t.f.Filter.TypeAgnostic.Identity
    via c.t.f.Filter.typeAgnosticIdentity(). cff9aedd
  • finagle-core: Add Java compatibility for c.t.f.Name through Names.
    30a8000c
  • finagle-core: Introduce a StackServer.withStack overload that
    makes modifying the existing Stack easier when using method chaining.
    f1a980cf
  • finagle-thrift: Add c.t.finagle.thrift.MethodMetadata which provides a LocalContext Key
    for setting information about the current Thrift method and an accessor for retrieving
    the currently set value. 7b22e4ef
  • finagle-thrift: Update c.t.finagle.thrift.MethodMetadata to provide an
    asCurrent method to set the current c.t.finagle.thrift.MethodMetadata in the
    LocalContext. f46e1f77

Breaking API Changes

  • finagle-core: The c.t.u.Closable trait has been removed from
    c.t.f.t.TransportContext, as well as the close and onclose methods. Uses of
    these methods within TransportContext should be changed to use the corresponding
    methods on c.t.f.t.Transport instead. b8b850bb
  • finagle-core: The deprecated c.t.f.t.Transport.peerCertificate method on the Transport class
    (not the Transport.peerCertificate Finagle context) has been removed. Uses of this
    method should be changed to use c.t.f.t.TransportContext.peerCertificate instead.
    ab0432b4
  • finagle-core: The deprecated c.t.f.t.TransportContext.status method has been removed
    from TransportContext. Uses of this method should be changed to use
    c.t.f.t.Transport.status instead. fd97536f
  • finagle-mysql: c.t.f.m.Charset has been renamed to c.t.f.m.MysqlCharset to resolve
    any ambiguity between it and the Charset Stack parameter. 05354cd5
  • finagle-mysql: All Stack params (Charset, Credentials, Database, FoundRows,
    MaxConcurrentPrepareStatements, UnsignedColumns) have been moved to the
    com.twitter.finagle.mysql.param namespace. d30c5549
  • finagle-mysql: The deprecated c.t.f.m.Client.apply(factory, statsReceiver) method
    has been removed. 17747e1a
  • finagle-mysql: The c.t.f.m.Handshake class and companion object have been made
    private. 20c8d50f
  • finagle-http: Rename the toggle 'c.t.f.h.UseH2CClients' to 'c.t.f.h.UseH2CClients2'.
    43c0b69c

Runtime Behavior Changes

  • finagle: Upgrade to Netty 4.1.31.Final and netty-tcnative 2.0.19.Final. 8e0f4b86
  • finagle-base-http: The DefaultHeaderMap will replace obs-fold ( CRLF 1*(SP/HTAB) ) in
    inserted header values. 51c4f789

Finagle 18.11.0

12 Nov 23:53
Compare
Choose a tag to compare

New Features

  • finagle-base-http: Add Message.httpDateFormat(millis) to format the epoch millis into
    an RFC 7231 formatted String representation. eb9bec0e
  • finagle-core: Introduce an StackClient.withStack overload that
    makes modifying the existing Stack easier when using method chaining.
    8f69e833
  • finagle-mysql: Introduce session to be able to perform multiple operations that require
    session state on a guaranteed single connection. a06f7d67
  • finagle-netty4: When using the native epoll transport, finagle now publishes the TCP window size
    and number of retransmits based on the tcpInfo provided by from the channel. These stats are
    published with a debug verbosity level. 16071088
  • finagle-http: HTTP clients and servers now accept fixedLengthStreamedAfter param in their
    withStreaming configuration (default: 5 MB when streaming is enabled). This new parameter
    controls the limit after which Finagle will stop aggregating messages with known Content-Length
    (payload will be available at .content) and switch into a streaming mode (payload will be
    available at .reader). Note messages with Transfer-Encoding: chunked never aggregated.
    842e5e1a

Breaking API Changes

  • finagle-http: c.t.f.http.param.MaxChunkSize has been removed. There is no good reason to
    configure it with anything but Int.MaxValue (unlimited). 990c8650
  • finagle-exp: Update DarkTrafficFilter#handleFailedInvocation to accept the request type
    for more fidelity in handling the failure. b247f941

Runtime Behavior Changes

  • finagle-http: Unset maxChunkSize limit in Netty HTTP codecs. Now both clients and servers
    emit all available data as a single chunk so we can put it into use quicker.
    990c8650
  • finagle-http: Streaming clients (withStreaming(true)) now aggregate inbound messages with known
    Content-Length if their payloads are less than 5mb (8k before). Use withStreaming(true, 32.kb)
    to override it with a different value. 24271b29
  • finagle-http2: HTTP/2 servers perform a more graceful shutdown where an initial
    GOAWAY is sent with the maximum possible stream id and waits for either the client
    to hang up or for the close deadline, at which time a second GOAWAY is sent with
    the true last processed stream and the connection is then closed.
    93fee499

Deprecations

  • finagle-core: Deprecate
    EndpointerStackClient.transformed(Stack[ServiceFactory[Req, Rep]] => Stack[ServiceFactory[Req, Rep]])
    in favor of the withStack variant. 8f69e833

Finagle 18.10.0

19 Oct 20:21
Compare
Choose a tag to compare

Deprecations

  • finagle-core: Deprecation warnings have been removed from the 'status', 'onClose',
    and 'close' methods on c.t.f.t.Transport, and added to the corresponding methods
    on c.t.f.t.TransportContext. 9ae6d978

Runtime Behavior Changes

  • finagle-netty3: Implementations for 'status', 'onClose', and 'close' methods have
    been moved from c.t.f.n.t.ChannelTransportContext to c.t.f.n.t.ChannelTransport.
    9ae6d978

Finagle 18.9.1

26 Sep 23:58
Compare
Choose a tag to compare

Breaking API Changes

  • finagle-base-http: DefaultHeaderMap now validates HTTP Header names and
    values in add and set. addUnsafe and setUnsafe have been created to
    allow adding and setting headers without validation. 3454f95d
  • finagle-core: Remove slow host detection from ThresholdFailureDetector.
    c05f5832

Runtime Behavior Changes

  • finagle-core: When Finagle would exhaust a retry budget with an exception that was
    not a FailureFlags, previously it would wrap that exception with a non-retryable
    failure. This lead to surprising behavior for users. Those exceptions will no longer
    be wrapped. 4ece3d2a
  • finagle-http: The finagle HTTP clients and servers now consider a Retry-After: 0
    header to be a retryable nack. Servers will set this header when the response is
    a retryable failure, and clients will interpret responses with this header as a
    Failure.RetryableNackFailure. 3c3fedc6

Finagle 18.9.0

12 Sep 00:06
Compare
Choose a tag to compare

18.9.0

New Features

  • finagle-core: c.t.f.FailureFlags is now a public API. This is
    Finagle's API for attaching metadata to an exception. As an example
    this is used to check if an exception is known to be safe to retry.
    Java compatibility has also been added.
    e6389831
  • finagle-core: Introducing StackTransformer, a consistent mechanism
    for accessing and transforming the default ServerStack.
    0b6844cd
  • finagle-netty4: Allow sockets to be configured with the
    [SO_REUSEPORT](http://lwn.net/Articles/542629/) option when
    using native epoll, which allows multiple processes to bind and
    accept connections from the same port.

Breaking API Changes

  • finagle: c.t.io.Reader and c.t.io.Writer are now abstracted over the
    type they produce/consume (Reader[A] and Writer[A]) and are no
    longer fixed to Buf.
    5242d49d
  • finagle-core: Address.hashOrdering now takes a seed parameter and
    PeerCoordinate.setCoordinate does not take a peerOffset any longer.
    9e6734b2
  • finagle-core: Removed deprecated members
    c.t.f.Failure.{Interrupted, Ignorable, DeadlineExceeded,
    Rejected, NonRetryable, flagsOf}.
    54435221
  • finagle-core: SingletonPool now takes an additional parameter which
    indicates if interrupts should propagate to the underlying resource.
    c83ad5d1
  • finagle-core: Remove TimeoutFactory.Role in favor of passing a role
    to the module function. Since this module is a re-used within the
    client stack, it needs unique identifiers for each distinct module.
    4c46b80d
  • finagle-core: the valid range for the argument to
    WindowedPercentileHistogram.percentile is now [0.0..1.0], e.g.,
    0.95 means 95th percentile.
    8ad96f96
  • finagle-mux: The old pull-based mux implementations have been
    removed.
    d1baeff9
  • finagle-netty3: The type of context of a ChannelTransport has been
    changed from a LegacyContext to a ChannelTransportContext.
    4cdd15d9
  • finagle-netty4: The type of context of a ChannelTransport has been
    changed from a Netty4Context to a ChannelTransportContext.
    edce8093
  • finagle-netty4: c.t.f.netty4.param.useUnpoolledByteBufAllocator flag
    has been removed. There is no good reason to opt-out of a more
    efficient, pooled allocator.
    07495a14
  • finagle-thrift: DeserializeCtx became ClientDeserializeCtx for
    client side response classification, add ServerDeserializeCtx to
    handle server side response classification.
    a8be34bd
  • finagle-serversets: ZkMetadata.shardHashOrdering now takes a seed
    parameter.
    9e6734b2

Bug Fixes

  • finagle-thrift: Thrift clients created via .servicePerEndpoint now
    propagate exceptions appropriately when the method return type is
    void.
    bb2654e1
  • finagle-thrift, finagle-thriftmux: Response classification is
    enabled in server side.
    a8be34bd

Runtime Behavior Changes

  • finagle-memcached: A Memcached client (c.t.f.Memcached.Client) is
    now backed by a more efficient, push-based implementation.
    c0a1f295
  • finagle-netty4: Finagle's Netty 4 implementation now defaults to use
    Linux's native epoll transport, when available. Run with
    -com.twitter.finagle.netty4.useNativeEpoll=false to opt out.
    137f5672

Finagle 18.8.0

17 Sep 18:44
Compare
Choose a tag to compare

18.8.0

New Features

  • finagle-core: Introducing the new c.t.f.tracing.Tracing API for more efficient tracing
    (dramatically reduces the number of context lookups; see scaladoc for c.t.f.tracing.Trace).
    547cd864
  • finagle-core: c.t.f.tracing.Trace facade API now provides forwarding record methods for
    all kinds of annotations and is a preffered way of recording traces. 50c00d88
  • finagle-thriftmux: Promote the push-based ThriftMux implementation out of experimental
    status.eedd1fd8

Breaking API Changes

  • finagle-base-http: c.t.f.http.cookie.exp.supportSameSiteCodec has been moved out of the
    exp package to c.t.f.http.cookie.supportSameSiteCodec. 5e5ea390
  • finagle-core: Parameter-less annotation classes (c.t.f.tracing.Annotation) have been
    promoted to objects for efficiency reasons. 50c00d88
  • finagle-core: c.t.f.tracing.Trace.record(Record) now accepts the record argument by
    value (previously by name). 33841d21
  • finagle-core: c.t.f.Failure.{Restartable, Interrupted, Ignorable, DeadlineExceeded,
    Wrapped, Rejected, NonRetryable} are deprecated in favor of the c.t.f.FailureFlags
    analogs. 0e0c7b43
  • finagle-core: c.t.f.Leaf and c.t.f.Node are now private; use Stack.leaf and
    Stack.node instead. cc49ee83
  • finagle-core: Marked transform in com.twitter.finagle.Stack as protected. It is too
    powerful and unnecessary for users, and should be for implementor use only. 99479f32
  • finagle-mysql: c.t.f.mysql.CanBeParameter's implicit conversions timestampCanBeParameter,
    sqlDateCanBeParameter, and javaDateCanBeParameter have been consolidated into a single
    implicit, dateCanBeParameter. b486772d

Bug Fixes

  • finagle-http2: Fixed a race condition caused by c.t.f.http.transport.StreamTransports being
    closed, but that status not being reflected right away, causing a second request to fail.
    68f1035f

Runtime Behavior Changes

  • finagle-core: c.t.f.tracing.Trace API is no longer guarding Trace.record calls behind
    Trace.isActivelyTracing. Add Trace.isActivelyTracing guards on the call sites if
    materializing tracing annotations is a performance concern. 33841d21
  • finagle-mysql: Clients will now issue a ROLLBACK each time a service is checked back
    into the connection pool. This can be disabled via Mysql.Client.withNoRollback.
    e3221597
  • finagle-thriftmux: The push-based server muxer is now the default. In both synthetic tests
    and production it has shown signifcant performance benefits and is simpler to maintain.
    735a6bae
  • finagle-mysql: Remove deprecated TimestampValue.apply(Timestamp) and
    TimestampValue.unapply(value) methods. Use TimestampValue.apply(TimeZone, TimeZone)
    instead. e01f02f5

Deprecations

  • finagle-mux: The pull based mux implementation, c.t.f.Mux, has been deprecated in favor of
    the push-based mux implementation, c.t.f.pushsession.MuxPush. 735a6bae