Monix: Critical Bug Fix in Version 2.2.3 for Scala 2.12
Version 2.2.3
is out now.
It is a minor release that’s binary and source compatible with
2.2.x
, fixing a critical bug that happens in Scala 2.12, due to
changes to how flatMap
is implemented in scala.concurrent.Future
:
- Bug #330:
Ack.Continue.transformWith
andAck.Stop.transformWith
are not stack-safe
Impact of this bug: it does NOT impact most (probably all)
functionality in Monix, because Monix rarely flatMaps direct
Continue
references (due to batching and optimizations) and we have
had extensive tests for long loops that could trigger this problem.
However this bug can be dangerous for people that have implemented the communication protocol (as described in the docs) by themselves. If you’re using Monix with Scala 2.12, then upgrade immediately.
Upgrade should be safe, being binary compatible with all previous
2.2.x
versions.
Upgrading #
To use the new version, include this in your build.sbt
(and use
%%%
for Scala.js):
libraryDependencies += "io.monix" %% "monix" % "2.2.3"
The other projects from the @Monix organization have also been upgraded to depend on this new version.
shade, the Scala Memcached client:
dependencies += "io.monix" %% "shade" % "1.9.3"
monix-kafka, the Apache Kafka integration:
// For Kafka 8
libraryDependencies += "io.monix" %% "monix-kafka-8" % "0.12"
// For Kafka 9
libraryDependencies += "io.monix" %% "monix-kafka-9" % "0.12"
// For Kafka 10
libraryDependencies += "io.monix" %% "monix-kafka-10" % "0.12"
Enjoy!