October 2019 Release Notes - Version 19.10.0 🌕
In preparation for Halloween 👻 at the end of the month, we are very happy to announce
our October 🕷️ release: no tricks 🎃 – all treats 🍬.
New Features
- finagle-partition: Enables cross-build for 2.13.0. 89f06885
- finagle-exception: Enables cross-build for 2.13.0. d90ae646
- finagle-exp: Enables cross-build for 2.13.0. 32bc9f48
- finagle-mysql: Enables cross-build for 2.13.0. ef31c99b
- finagle-{mux,thrift,thrift-mux}: Enables cross-build for 2.13.0. 47ee31fd
- finagle-redis: Enables cross-build for 2.13.0. d90ae646
- finagle-tunable: Enables cross-build for 2.13.0. 69ded534
- finagle-grpc-context: Enables cross-build for 2.13.0. 65963f58
- finagle-thrift: Pass a factory to create a TReusableBuffer as the parameter of a finagle client
to allow multiple clients share one TReusableBuffer. 05b2ec71
Runtime Behavior Changes
- finagle-http2: H2ServerFilter will no longer swallow exceptions that fire via
exceptionCaught in the Netty pipeline. PHAB_ID=D369185
- finagle-http: Remove legacy HTTP/2 client implementation and make the MultiplexHandler-based
implementation the default HTTP/2. b6d0aa19
Breaking API Changes
- finagle-core: c.t.f.l.FailureAccrualFactory’s didMarkDead() changed to didMarkDead(Duration).
The Duration is the length of time the endpoint is marked dead. fe2f43a3
Bug Fixes
- finagle-mux: Mux now properly propagates Ignorable failures multiple levels for superseded
backup requests. This allows for more accurate success rate metrics for downstream services,
when using backup requests.
21b181e8
Changed
- finatra-jackson: Update jackson reflection to use org.json.reflect instead of
custom reflection. This enables support for parsing case classes defined over generic
types, e.g.,
case class Page[T](data: T)
. As a result of this change, use of lazy val
for trait members which are mixed into case classes for use in deserialization is no
longer supported. This addresses issue #480. 83d3ed6d
Fixed
- finatra-jackson: Add support for parsing of case classes defined over generic types
(even nested, and multiple), e.g.,
case class Page[T, U](data: List[T], column: U)
.
Fixes issue #408. 83d3ed6d
- finatra-kafka: Sanitize topic name in MonitoringConsumer stats scope
0df09c6b
- inject-server: Fix printing of all stats from the underlying InMemoryStatsReceiver in
the eventually loop for stat assertion. Address finatra/kafka test logging for
finatra/kakfa-streams/kafka-streams and finatra/kafka. 32833de1
- inject-logback: A NullReferenceException could be thrown during metrics
collection due to an incorrect logback.xml configuration. This has been fixed.
82f0382f
Runtime Behavior Changes
- util-core: When a computation from FuturePool is interrupted, its promise is
set to the interrupt, wrapped in a j.u.c.CancellationException. This wrapper
was introduced because, all interrupts were once CancellationExceptions. In
RB_ID=98612
, this changed to allow the user to raise specific exceptions as
interrupts, and in the aid of compatibility, we wrapped this raised exception
in a CancellationException. This change removes the wrapper and fails the
promise directly with the raised exception. This will affect users that
explicitly handle CancellationException. 9daad3d9
Bug Fixes
- util-core: Fixed bug in c.t.io.Reader.framed where if the framer didn’t emit a List the
emitted frames were skipped. aedc943e
- util-hashing: Fix a bug where partitionIdForHash was returning incosistent values w.r.t
entryForHash in KetamaDistributor. c66080b6
- scrooge-generator: Make isset BitSet final in Java generated thrift classes. 19ca055e
- scrooge-generator: Return Nil for exceptionFields when no exceptions declared in Scala service. e6c44930
- scrooge-generator: Use empty instances as defaults for Seq, Map, Set for Scala generated code. 8904ba89
- scrooge-generator: Use wrapper class valueOf in apachejavagen’s getFieldValue. 8d02a4f3
- scrooge-linter: Warn when function names are reserved words. Add support for reserved
words in Javascript and Go. ca2ae718
No Changes