Skip to content

Releases: akkadotnet/akka.net

Akka.NET v1.5.31

11 Nov 21:01
fe6fa8d
Compare
Choose a tag to compare

1.5.31 November 11th 2024

Akka.NET v1.5.31 is a maintenance release that addresses several bugs and added new features.

Upgrade Advisory

There is a slight change in how actor Stash behavior. In previous behavior, Stash will filter out any messages that are identical (see explanation below) when it is prepended with another. It will not do so now, which is the actual intended behavior.

This change will affect Akka.Persistence users or users who use the Stash.Prepend() method in their code. You will need to add a de-duplication code if your code depends on sending identical messages multiple times to a persistence actor while it is recovering.

Messages are considered as identical if they are sent from the same sender actor and have a payload message that Equals() to true against another message. Example payload types would be an object pointing to the same memory address (ReferenceEquals() returns true), value types (enum, primitives, structs), and classes that implements the IEquatable interface.

To see the full set of changes in Akka.NET v1.5.31, click here.

2 contributors since release 1.5.30

COMMITS LOC+ LOC- AUTHOR
9 627 154 Gregorius Soedharmo
4 133 40 Aaron Stannard

Changes:

  • fe6fa8d Update RELEASE_NOTES.md for 1.5.31 release (#7384)
  • fb526e5 Add missing cluster singleton detection (#7363)
  • 322c494 Block lease release in Shard PostStop (#7383)
  • 902daf5 clarified that you don't need to handle ShardRegion.StartEntity after version v1.5.15 of Akka.NET (#7380)
  • 699aff2 [Streams] Fix ShellRegistered message deadletter log (#7376)
  • 3700809 Added reproduction for missing Stash.Stash messages in Akka.,Persistence actors (#7374) [ #7373 ]
  • 67fad90 Fix EventSourced Stash filtering out identical envelopes (#7375)
  • 0cbddb5 fixed bugs with multiple Members with same Address crashing ClusterDaemon (#7371) [ #7370 ]
  • 02157c3 fix potential ArgumentException during shard rebalancing (#7367) [ #7365 ]
  • 7685a6f Fix Hyperion serializer config bug (#7364)
See More

This list of changes was auto generated.

Akka.NET v1.5.30

03 Oct 16:56
6fd8701
Compare
Choose a tag to compare

1.5.30 October 1st 2024

Akka.NET v1.5.29 introduced an interface change on the IScheduler that unfortunately caused a lot of other plugins to break due to API compatibility issues. v1.5.30 rolls back that change but still fixes the underlying bug in Akka.Persistence's handling and serialziation of timestamps without any interface changes. v1.5.29 will be deprecated from NuGet.

To see the full set of changes in Akka.NET v1.5.30, click here.

3 contributors since release 1.5.28

COMMITS LOC+ LOC- AUTHOR
8 259 104 Gregorius Soedharmo
1 10 10 Simon Cropp
1 0 1 Aaron Stannard

1.5.29 October 1st 2024

Note

Deprecated

This version introduced breaking changes that needs to be reverted. Please use 1.5.30 instead.

Akka.NET v1.5.29 is an emergency patch release that addresses a severe bug for persistence users whom also use protobuf serializer.

To see the full set of changes in Akka.NET v1.5.29, click here.

3 contributors since release 1.5.28

COMMITS LOC+ LOC- AUTHOR
4 177 14 Gregorius Soedharmo
1 10 10 Simon Cropp
1 0 1 Aaron Stannard

Changes:

This list of changes was auto generated.

Akka.NET v1.5.29

01 Oct 15:18
f5c4e63
Compare
Choose a tag to compare

1.5.29 October 1st 2024

Akka.NET v1.5.29 is an emergency patch release that addresses a severe bug for persistence users whom also use protobuf serializer.

To see the full set of changes in Akka.NET v1.5.29, click here.

3 contributors since release 1.5.28

COMMITS LOC+ LOC- AUTHOR
4 177 14 Gregorius Soedharmo
1 10 10 Simon Cropp
1 0 1 Aaron Stannard

Changes:

This list of changes was auto generated.

Akka.NET v1.5.28

04 Sep 18:38
3df80f2
Compare
Choose a tag to compare

1.5.28 September 5th 2024

Akka.NET v1.5.28 is a release with several bug fixes and improvements.

To see the full set of changes in Akka.NET v1.5.28, click here.

2 contributors since release 1.5.27.1

COMMITS LOC+ LOC- AUTHOR
10 5318 5153 Aaron Stannard
8 1568 158 Gregorius Soedharmo

Changes:

  • 3df80f2 Update RELEASE_NOTES.md for 1.5.28 release (#7336)
  • cfd25ef Persistence.TCK: Add SnapshotStore SaveSnapshot spec (#7335)
  • cb11702 Fix SaveSnapshot timestamp metadata (#7334)
  • e8beec4 Fix StreamRefSerializer NRE bug (#7333)
  • b47b922 Move ClusterClientDiscovery docs to H1 (#7331)
  • df33c31 Update RELEASE_NOTES.md for 1.5.28-beta1 release (#7329)
  • 4856230 Fix missing AlsoTo public APIs (#7328)
  • 2502ea9 Akka.Persistence.Sql.Common: harden SqlJournal and SqlSnapshotStore against initialization failures (#7325)
  • ae942d0 Don't enable durable DData for RE unless DData is storage engine (#7327) [ #7326 ]
  • 19162bd Improve Akka.Persistence.TestKit (#7324)
See More
  • 355439e TestKit and Akka.Remote.TestKit: diagnostic improvements and code modernization (#7321)
  • 801ce60 rename ".NET 7" build tasks to just ".NET" (#7323)
  • d1f481f fixed ClusterClientDiscoverySpec (#7322)
  • 5e2bd0e chore: added 2024 headers (#7319)
  • 96c6a60 fixed Akka.Persistence.Tck snapshot load specs (#7320)
  • d6a8063 Akka.Persistence: Made DateTime.UtcNow the default timestamp for SnapshotMetdata (#7313)
  • 5e7be3a Fix ClusterSingletonProxy fails to reacquire singleton actor (#7315)
  • da3ded3 Akka.Actor: make ITimeProvider injectable into consuming classes (#7314)
  • acc8bd3 Update ClusterClientDiscovery Akka.Hosting documentation (#7310)
  • 177a7c9 Akka.Cluster.Tools.Singleton: log the correct oldest member on transition (#7309)

This list of changes was auto generated.

Akka.NET v1.5.28-beta1

23 Aug 17:57
df33c31
Compare
Choose a tag to compare
Pre-release

1.5.28-beta1 August 23rd 2024

Akka.NET v1.5.28-beta1 is a patch beta release with several bug fixes and improvements.

To see the full set of changes in Akka.NET v1.5.28-beta1, click here.

COMMITS LOC+ LOC- AUTHOR
10 5318 5153 Aaron Stannard
4 1440 115 Gregorius Soedharmo

Changes:

  • df33c31 Update RELEASE_NOTES.md for 1.5.28-beta1 release (#7329)
  • 4856230 Fix missing AlsoTo public APIs (#7328)
  • 2502ea9 Akka.Persistence.Sql.Common: harden SqlJournal and SqlSnapshotStore against initialization failures (#7325)
  • ae942d0 Don't enable durable DData for RE unless DData is storage engine (#7327) [ #7326 ]
  • 19162bd Improve Akka.Persistence.TestKit (#7324)
  • 355439e TestKit and Akka.Remote.TestKit: diagnostic improvements and code modernization (#7321)
  • 801ce60 rename ".NET 7" build tasks to just ".NET" (#7323)
  • d1f481f fixed ClusterClientDiscoverySpec (#7322)
  • 5e2bd0e chore: added 2024 headers (#7319)
  • 96c6a60 fixed Akka.Persistence.Tck snapshot load specs (#7320)
See More
  • d6a8063 Akka.Persistence: Made DateTime.UtcNow the default timestamp for SnapshotMetdata (#7313)
  • 5e7be3a Fix ClusterSingletonProxy fails to reacquire singleton actor (#7315)
  • da3ded3 Akka.Actor: make ITimeProvider injectable into consuming classes (#7314)
  • acc8bd3 Update ClusterClientDiscovery Akka.Hosting documentation (#7310)
  • 177a7c9 Akka.Cluster.Tools.Singleton: log the correct oldest member on transition (#7309)

This list of changes was auto generated.

Akka.NET v1.5.27.1

26 Jul 00:14
55827b7
Compare
Choose a tag to compare

1.5.27.1 July 25th 2024

Akka.NET v1.5.27.1 is a minor patch to fix a race condition between the logging and remoting system.

To see the full set of changes in Akka.NET v1.5.27.1, click here.

COMMITS LOC+ LOC- AUTHOR
1 4 0 Aaron Stannard
1 10 3 Gregorius Soedharmo

Changes:

  • 55827b7 Update RELEASE_NOTES.md for 1.5.27.1 (#7306)
  • 3e2d49c Fix remoting logging DefaultAddress race condition (#7305)
  • 3eacb6c Added v1.5.28 placeholder

This list of changes was auto generated.

Akka.NET v1.5.27

25 Jul 19:35
b34d645
Compare
Choose a tag to compare

1.5.27 July 25th 2024

Akka.NET v1.5.27 is a significant release that includes new features, mission-critical bug fixes, and some performance improvements.

Major Akka.Cluster.Sharding and Akka.Cluster.Tools.Singleton Bug Fixes

In all prior versions of Akka.NET, there are two high impact distributed systems bugs:

  1. Akka.Cluster.Tools.Singleton: singleton moves earlier than expected - as soon as new node joins
  2. Akka.Cluster.Sharding: duplicate shards / entities

As we discovered during the course of our pains-taking bug investigation, these were, in fact, the same issue:

  1. The ClusterSingletonManager is supposed to always belong on the oldest node of a given role type, but an original design error from the time Akka.Cluster.Tools was first introduced to Akka.NET meant that nodes were always sorted in descending order of UpNumber. This is backwards: nodes should always be sorted in ascending order of UpNumber - this means that the oldest possible node is always at the front of the "who is oldest?" list held by the ClusterSingletonManager. This explains why the singleton could appear to move early during deployments and restarts.
  2. The ClusterSingletonManager was suspectible to a race condition where if nodes were shutdown and restarted with the same address in under 20 seconds, the default "down removal margin" used by the ClusterSingletonManager to tolerate dirty exits, it would be possible after multiple successive, fast, restarts for multiple instances of the singleton to be alive at the same time (for a short period.)

Both of these varieties of problem, duplicate singletons, is what lead to duplicate shards.

As a result we've made the following fixes:

Akka.Discovery and ClusterClient Discovery Support

In Akka.NET v1.5.27 we've added support for using Akka.Cluster.Tools.ClusterClient alongside with Akka.Discovery plugins to automatically discover the initial contacts you need for ClusterClientReceptionist instances in your environment.

You can read the documentation for how this works here: https://getakka.net/articles/clustering/cluster-client.html#contact-auto-discovery-using-akkadiscovery

Related PRs and issues:

Other Bug Fixes and Improvements

To see the full set of changes in Akka.NET v1.5.27, click here.

COMMITS LOC+ LOC- AUTHOR
15 835 1001 Aaron Stannard
12 1123 207 Gregorius Soedharmo

Changes:

  • b34d645 V1.5.27 release notes (#7303)
  • 6a81fd3 Akka.Cluster.Tools: deprecate ClustersSingletonManagerSettings.ConsiderAppVersion (#7302)
  • 7180810 Akka.Cluster.Tools: fix mutability and oldest state bugs with ClusterSingletonManager (#7298)
  • 6b6afe4 Add AlsoTo downstream failure propagation support (#7301)
  • 7811504 Fix ActorMaterializerImpl null LogSource (#7300)
  • f2e81c5 Akka.Cluster.Tools.Singleton / Akka.Cluster.Sharding: fix duplicate shards caused by incorrect ClusterSingletonManager HandOver (#7297) [ #6973, #6793, #7196 ]
  • f4501e8 migrated ClusterSingletonManager to switch statements (#7296)
  • 9eb670a ShardCoordinator: misc cleanup (#7295)
  • a6daed7 remove unused reference.confg from DistributedData.LightningDb (#7294)
  • d3b3613 DData: if lmdb.dir is null or empty, log a warning and set to default (#7292)
See More
  • 50ef7b9 Akka.Cluster: added sanity check for Member.AgeComparer (#7291) [ #6973 ]
  • f7f9078 Akka.Cluster.Sharding: enable prefer-oldest by default on Replicator (#7290)
  • 4b7cff3 Akka.Cluster.Sharding: added tests for DData consistency settings (#7288)
  • 5176dfb Akka.Cluster: improve gossip serialization performance (#7281)
  • 9981d83 Fix busted Windows Build stage (#7283)
  • 7947c1f Optimize cluster message serializer benchmarks (#7282)
  • 7fb0c2b Add ActorBase lifecycle flow unit tests (#7128)
  • 8843a21 Akka.Cluster: ClusterMessageSerializer benchmarks (#7280)
  • 9f5de84 Akka.Cluster: harden ignored gossip messages (#7278)
  • 8f200ef Update RELEASE_NOTES.md for 1.5.27-beta2 release (#7277)
  • 03a469f Fix ClusterClientDiscovery, missing port name in lookup (#7276)
  • 67e7754 Update RELEASE_NOTES.md for 1.5.27-beta1 release (#7275)
  • e4e4ca4 Improve ClusterClientDiscovery feature (#7274)
  • 7f37465 Fix possible problems with ClusterClient Discovery (#7270)
  • dab2a5e Update failure message syntax (#7273)
  • 000d8fe Fix missing ClusterClientSettings.VerboseLogging in Copy method (#7272)
  • 399c548 Update ConfigServiceDiscovery to support multi-config (#7271)
  • 7136919 Added v1.5.27 placeholder
  • f797f8d Update RELEASE_NOTES.md for 1.5.26 release (#7268)

This list of changes was auto generated.

Akka.NET v1.5.27-beta2

03 Jul 21:16
8f200ef
Compare
Choose a tag to compare
Pre-release

1.5.27-beta2 July 3rd 2024

COMMITS LOC+ LOC- AUTHOR
1 1 1 Gregorius Soedharmo

1.5.27-beta1 July 3rd 2024

Akka.NET v1.5.27-beta1 improves upon the new ClusterClient initial contact auto-discovery feature to make it more robust in implementation.

COMMITS LOC+ LOC- AUTHOR
5 422 183 Gregorius Soedharmo
1 4 0 Aaron Stannard
1 1 1 Sean Killeen

Changes:

  • 8f200ef Update RELEASE_NOTES.md for 1.5.27-beta2 release (#7277)
  • 03a469f Fix ClusterClientDiscovery, missing port name in lookup (#7276)
  • 67e7754 Update RELEASE_NOTES.md for 1.5.27-beta1 release (#7275)
  • e4e4ca4 Improve ClusterClientDiscovery feature (#7274)
  • 7f37465 Fix possible problems with ClusterClient Discovery (#7270)
  • dab2a5e Update failure message syntax (#7273)
  • 000d8fe Fix missing ClusterClientSettings.VerboseLogging in Copy method (#7272)
  • 399c548 Update ConfigServiceDiscovery to support multi-config (#7271)
  • 7136919 Added v1.5.27 placeholder
  • f797f8d Update RELEASE_NOTES.md for 1.5.26 release (#7268)

This list of changes was auto generated.

Akka.NET v1.5.27-beta1

03 Jul 15:26
67e7754
Compare
Choose a tag to compare
Pre-release

1.5.27-beta1 July 3rd 2024

Akka.NET v1.5.27-beta1 improves upon the new ClusterClient initial contact auto-discovery feature to make it more robust in implementation.

COMMITS LOC+ LOC- AUTHOR
5 422 183 Gregorius Soedharmo
1 4 0 Aaron Stannard
1 1 1 Sean Killeen

Changes:

  • 67e7754 Update RELEASE_NOTES.md for 1.5.27-beta1 release (#7275)
  • e4e4ca4 Improve ClusterClientDiscovery feature (#7274)
  • 7f37465 Fix possible problems with ClusterClient Discovery (#7270)
  • dab2a5e Update failure message syntax (#7273)
  • 000d8fe Fix missing ClusterClientSettings.VerboseLogging in Copy method (#7272)
  • 399c548 Update ConfigServiceDiscovery to support multi-config (#7271)
  • 7136919 Added v1.5.27 placeholder
  • f797f8d Update RELEASE_NOTES.md for 1.5.26 release (#7268)

This list of changes was auto generated.

Akka.NET v1.5.26

27 Jun 15:28
Compare
Choose a tag to compare

1.5.26 June 27th 2024

Akka.NET v1.5.26 introduces a new Akka.Cluster.Tools feature and a logging improvement.

Preliminary ClusterClient Initial Contact Auto-Discovery Feature

To use this feature, you will need to use Akka.Discovery implementation (Kubernetes or Azure) version 1.5.26-beta1 or higher

This feature allows ClusterClient to use Akka.Discovery to automatically query for cluster client receptionists inside a dynamic environment such as Kubernetes.

The preliminary documentation for this feature can be read here

You can see the full set of changes for Akka.NET v1.5.26 here.

COMMITS LOC+ LOC- AUTHOR
3 45 11 Aaron Stannard
2 945 15 Gregorius Soedharmo

Changes:

  • c8fc3d4 Add notes to cluster client bit
  • 8d60093 Update RELEASE_NOTES.md for 1.5.26 release
  • 1cce480 Update ClusterClient documentation to include the new discovery feature (#7265)
  • 0fd7ca0 Improve traceability of ITimerMsg (#7262)
  • 8fd8c62 Add ClusterClient initial contact discovery feature (#7261)
  • 299fedf made examples, benchmarks, and internal libraries unpackable (#7263)
  • 851a72b Added v1.5.26 placeholder (#7258)

This list of changes was auto generated.