We—the Akka committers—are pleased to be able to announce the availability of Akka 2.1.1. This is the first maintenance release of the 2.1 branch, which besides documentation updates and the fixes mentioned below also contains a back-port of most of the cluster-related changes in the recently released 2.2-M1.
The issues fixed are:
- release thread pool used by Netty’s ExecutionHandler more timely
- passive remote connections now work when using secure cookies
- do not silently swallow exceptions in ForkJoinPool executor anymore
- fix a bug in HashedWheelTimer which would schedule events incorrectly if delay is multiple of one wheel rotation (thanks Matthew Neeley)
- fix reporting of error condition when IOManager binds to a port
- make sure to set Thread.interrupt() flag when catching InterruptedException during tell()
- Netty does not close the connection anymore upon encountering a non-serializable or too large message
- PinnedDispatcher does not allow its thread to time out anymore, keeping the actor on the same thread (as opposed to only on its own thread)
- actually disallow sending `null` messages (was always forbidden by documentation and only worked on some special ActorRefs)
- StdoutLogger restores stdout-loglevel during system shutdown
- do not leak the default dispatcher anymore
- do not set SO_REUSEADDR for remoting on Windows (which implements this in a buggy way)
- properly log exceptions without a message in JulEventLogger (thanks Sam Halliday)
The changes in the cluster module are:
- cluster metric-aware adaptive load balancing routers
- automatically load cluster extension when used, no need to declare in `akka.extensions` anymore
- fire DeathWatch only upon member DOWN, not already at UNREACHABLE
- allow configuration of minimum number of members before starting the cluster
- cluster singleton pattern
- detect failure even when no heartbeat was ever sent
In addition there have been a great number of documentation updates including a whole new section on terminology.
This release is backwards binary compatible with version 2.1.0, which means that the new JARs are a drop-in replacement for the old ones (but not the other way around). Always make sure to use at least the latest version required by any of your project’s dependencies.
Due to the restriction imposed by binary compatibility—which is kept for the patch releases within a minor release such as 2.1.x—not all known issues can be fixed. The currently known issues in the 2.1.x series are:
- ActorSystem.shutdown() does not terminate all threads if akka.remote.netty.use-dispatcher-for-io is set to true
Migrating from Older Releases
When migrating an existing project from Akka 2.0.x please have a look at our migration guide.
When migrating from the Akka 1.3.x series please follow first the migration guide towards version 2.0.5.
About the Cluster Support
The “akka-cluster” module is published under the name “akka-cluster-experimental” to emphasize that its status is not yet final. This denomination is not due to sub-par standard of the module; the cluster support has been tested thoroughly and it works as documented. The reason for the “experimental” tag is that this rather important module is now presented to the general public for the first time, and although we have received valuable feedback from early adopters we anticipate possible API changes in order to meet all of your requirements. Work is continuing on Akka’s cluster support, and we will formally declare it officially supported and stable with the next major release—Akka 2.2 ‘Coltrane’. Please help us make it the best possible solution by continuing to give feedback on the mailing list and telling us what can be improved.
The artifacts comprising this release candidate have been published to https://oss.sonatype.org/content/repositories/releases/ and also to Maven Central. In addition, we adopted the SBT standard of encoding the Scala binary version in the artifact name, i.e. the core actor package’s artifactId is “akka-actor_2.10”.
2.1.1compared to 2.1.0:
- 55 tickets closed
- 604 files changed, 8100 insertions(+), 2626 deletions(–)
- … and a total of 8 committers!
Fixed Tickets: see the assembla milestone