Skip to content

Releases: twitter/finagle

finagle-24.5.0

07 May 19:46
Compare
Choose a tag to compare

Finagle 23.11.0

02 Nov 20:44
Compare
Choose a tag to compare

23.11.0

New Features

  • finagle-stats: A new implementation of BucketedHistogram that works better under high contention, but requires
    more memory. 8de8488
  • finagle-http2: Add a per session request limit option to http2. 610a21ca

Runtime Behavior Changes

  • finagle: Bump netty to 4.1.100 and netty-tcnative to 2.0.61.Final. cfe39841
  • finagle: Bump version of Jackson to 2.14.2. 60a324e
  • finagle: Update JSqlParser to version 4.6 366a047
  • finagle: Bump version of Jackson to 2.14.3. 4c923f6

Bug Fixes

  • finagle-core: Failed recvAddress on Linux due to the remote peer resetting connection should now
    be properly seen as a c.t.f.ChannelClosedException instead of a
    c.t.f.UnknownChannelException. 83e31f8

Breaking API Changes

  • finagle-core: The c.t.f.context.Retries context has been renamed to c.t.f.context.Requeues to reflect what it
    actually contains -- the number of requeues a request has had (on the client immediately upstream). Requeues are
    retries on write exceptions (i.e. the original request was never sent to the server). 3c27308
  • finagle: Deposit budget once in MethodBuilder 82e2b839
  • finagle: Pass through configured deadline params rather than use default aa73d413

Finagle 22.12.0

26 Dec 14:39
Compare
Choose a tag to compare

22.12.0

New Features

  • finagle-core: Enable tracing for individual fanout requests via the FanoutTracer.
    8b92a584
  • finagle-core: Added helpers for local and peer ServiceIdentity to SslSessionInfo.
    b9f0f177
  • finagle-core: Expose StackClient.DefaultInjectors. 15c25153
  • finagle-http: RequestBuilder's c.t.f.http.FileElement now has isText (default: false)
    attribute. When set to true, no Content-Transfer-Encoding header is populated on the request.
    dcfb5923
  • finagle-http: When Finagle Http servers are secured with S2S, write c.t.finagle.SslSessionInfo#peerIdentity
    as remote user in access log. b903165a

Runtime Behavior Changes

  • util: Bump version of Jackson to 2.14.1. cd3a239f
  • finagle-http: Remove DeadlineFilter from Server stack. 8f96a534
  • finagle-core: Ensure BackupRequestFilter respects maxExtraLoad. For low QPS finagle clients
    this may mean fewer backup requests, so such clients can increase their maxExtraLoad setting
    if they actually want higher backup request rates. c0876691
  • finagle-serversets: Remove Endpoints with a weight of -1.0 from resolved zookeeper serversets
    Negative weights aren't normally valid so we use "-1.0" as a specific signal to not include
    the node in the resolved serverset returned to the client. This is useful for various types
    of testing. 3bc1f6ea

Breaking API Changes

  • finagle-core: DeadlineFilter.module has been replaced with DeadlineFilter.clientModule
    and DeadlineFilter.serverModule. PHAB_ID=D943426
  • finagle-http: c.t.f.Http.Http2 and c.t.f.Http.Netty4Impl values were removed because they
    were confusing. Use .withHttp2 and .withNoHttp2 to toggle HTTP/2 support ON and OFF
    respectively. PHAB_ID=D935292
  • finagle-core: Allow users of MethodBuilder.idempotent to specify non-retryable responses for
    idempotent methods. Previously these were overridden to be retryable. b8133350
  • finagle-core: The com.twitter.finagle.offload.queueSize has been removed. eb98b64f

Finagle 22.7.0

28 Jul 21:27
Compare
Choose a tag to compare

22.7.0

  • finagle-thrift: Changing visibility of InputBuffer and OutputBuffer from [finagle] to [twitter]. d56bb847

New Features

  • finagle-core: Introduce panic mode in load balancers. Configure the threshold for
    panic mode to start using withLoadBalancer.panicMode. c6060de8
  • finagle-core: Provide ServerParamsInjector, a class that will be service-loaded at run-time
    by Finagle servers, and will allow generic configuration of all sets of parameters.
    f00434c1
  • finagle-memcached: Add new function, newLoadBalancedTwemcacheClient, to create a TwemcacheClient
    that doesn't use a partitioning service.
    `PHAB_ID=D911789

Bug Fixes

  • finagle-core: fix issue where Trace.traceLocal and Trace.traceLocalFuture nested traces mistakenly
    annotate to the parent span. 77a7e774

Breaking API Changes

  • finagle-core: Remove unused DeterministicAperture along with pathways to use weight-unaware
    aperture loadbalancers. a5004ecc
  • finagle-base-http: Methods for getting/setting Accept, Authorization, Host, Referer,
    User-Agent, X-Forwarded-For headers were moved from c.t.f.http.Message class to
    c.t.f.http.Request as these headers are only valid on requests and not on responses.
    Methods for getting/setting Location, Retry-After, Server, and WWW-Authenticate headers
    were moved from c.t.f.http.Message class to c.t.f.http.Response as they are only valid
    on responses and not on requests.
  • finagle-core: Update OffloadFilter.Param API to encourage recommended construction.
    b684552f
  • finagle-core: Trace.recordLocalSpan is private[this] and no longer protected. 77a7e774
  • finagle-core: "ServiceFactory#status" is abstract and requires implementation in the inherited
    classes. b2a7f4ea
  • finagle-core: StackTransformer has been renamed to ServerStackTransformer and the symmetric
    client equivalent (ClientStackTransformer) has been added. For those using the older StackTransformer
    API you will both need to change the code (fix the extends) __and__ rename the META-INF file from
    resources/META-INF/services/com.twitter.finagle.StackTransformer to
    resources/META-INF/services/com.twitter.finagle.ServerStackTransformer in order to have your
    transformer continue to service-load correctly. f5de196d

Runtime Behavior Changes

  • finagle-core: Changed the default implementation for random and deterministic aperture
    load balancers to weighted aperture. f67c839c

  • finagle-partitioning: ThriftCustomPartitioningServices now allow fanning out the same
    request to multiple partitions. 59381065

  • finagle-core: Rename the counter metric loadbalancer/max_effort_exhausted to
    loadbalancer/panicked. a055f74b
  • finagle: Upgrade to Netty 4.1.76.Final and netty-tcnative 2.0.51.Final. c07a9b0b
  • finagle: Update Jackson library to version 2.13.3 92d39db2
  • finagle: Bump version of lz4-java to 1.8.0. 305c467c
  • finagle: Upgrade to Netty 4.1.78.Final and netty-tcnative 2.0.53.Final to support
    tls tracing for finagle in [Pixie](https://pixie.dev/). The Pixie changes aren't
    complete yet, but upgrading netty is a prerequisite for that. d251883b`

Finagle 22.4.0

20 Apr 16:02
Compare
Choose a tag to compare

22.4.0

Bug Fixes

  • finagle-integration: we discovered that we had a dead code in MuxClientSession.
    Let's remove Timer as a parameter in MuxClientSession since it's a dead code.
    77396f84

Finagle 22.3.0

29 Mar 21:46
Compare
Choose a tag to compare

22.3.0

Breaking API Changes

  • finagle-core: Removed the stack param WhenNoNodesOpenParam from LoadBalancerFactory.
    Removed NoNodesOpenServiceFactory and NoNodesOpenException. When the majority of nodes
    are busy or closed (approx 60%), the load balancer will probabilistically fail open and
    pick a node at random. 1ec9ffa4

Runtime Behavior Changes

  • finagle: Bump version of Jackson to 2.13.2. 0f83179d

Finagle 22.2.0

04 Mar 16:08
Compare
Choose a tag to compare

22.2.0

New Features

  • finagle-logging: Introduced finagle-logging, a new module for SLF4J-integrated
    filters. 0e6a3b68
  • finagle-logging: Introduced SlowTracesFilter, which observes your requests and
    logs the slowest ones that are also sampled for tracing. 0e6a3b68
  • 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. b0b8a6bb
  • 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. dab1e48d

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. 6a49bfda
  • finagle-postgres: Fixed a bug where a single framer instance was shared across all
    connections to a host when using TLS. 185e2115

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). dab1e48d
  • finagle-core: Renamed the existing clnt/dark_request to clnt/is_dark_request in
    c.t.finagle.filter.DarkTrafficFilterdab1e48d

Runtime Behavior Changes

  • finagle: Bump version of Caffeine to 2.9.3. c42cea2c
  • finagle: Upgrade to Netty 4.1.73.Final and netty-tcnative 2.0.46.Final.cccbae40
  • 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. 6a95f37d
  • 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). 712878ef
  • finagle-core: c.t.f.ssl.SslConfigurations.initializeSslContext now creates an engine which includes TLSv1.3 as a supported protocol. cc6c9db8
  • 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. 9c6898ef

Finagle 22.1.0

18 Jan 20:30
Compare
Choose a tag to compare

22.1.0

Runtime Behavior Changes

  • finagle: Bump version of Jackson to 2.13.1. 831b2512

Finagle 21.12.0

17 Dec 12:30
Compare
Choose a tag to compare

21.12.0

Deprecations

  • finagle-zipkin-core: c.t.f.zipkin.core.Sampler.DefaultSampleRate is deprecated in
    favor of c.t.f.zipkin.core.DefaultSampler.sampleRate. bd04e1c9

Bug Fixes

  • finagle-zipkin-core: c.t.f.zipkin.core.Sampler would sample at 1/10,000
    rate when configured with a lower (but non-zero) rate. It can now sample
    at rates as low as 1/16,777,216. 17cfb580

Runtime Behavior Changes

  • finagle-zipkin-scribe: c.t.f.zipkin.thrift.ZipkinTracer uses
    c.t.f.zipkin.core.DefaultSampler.sampleRate as the default sample rate instead of
    deprecated c.t.f.zipkin.core.Sampler.DefaultSampleRate. This allows it to correctly
    observe user-configured overrides to the default sample rate. When a ZipkinTracer is
    constructed with default parameters and there are no user-configured overrides, the
    behavior is unchanged. bd04e1c9

Finagle 21.11.0

24 Nov 22:30
Compare
Choose a tag to compare

21.11.0

Changed

  • finagle-base-http: Promote several classes out of exp experimental package:
    c.t.f.http.{GenStreamingSerialServerDispatcher, IdentityStreamTransport, StreamTransport} along
    with internal support classes. 81169d53

Breaking API Changes

  • finagle-core: Remove c.t.f.loadbalancer.Balancer.maxEffort. Remove the maxEffort
    argument from Balancers.{p2c, p2cPeakEwma, aperture, aperturePeakEwmaUse, roundRobin}.
    25f01f77
  • finagle-core: c.t.f.tracing.ClientRequestTracingFilter has been removed.
    Record relevant tracing information in your service or client directly. bcd89491
  • finagle: Remove com.twitter.finagle.Group, and other rarely used and deprecated pieces that depend on it
    com.twitter.finagle.memcached.TwitterCacheResolver, com.twitter.finagle.memcached.CacheNodeGroup,
    com.twitter.finagle.memcached.RubyMemCacheClient, and com.twitter.finagle.memcached.PHPMemCacheClient.
    Instead of Group, please use Var[Set[T]] or Activity[Set[T]] directly instead. f6021319

Runtime Behavior Changes

  • finagle: Update Caffeine cache library to version 2.9.2 7c91f966