akkadotnet / Akka.Persistence.SqlServer

Akka.Persistence.SqlServer provider
Apache License 2.0
59 stars 49 forks source link

Bump AkkaVersion from 1.5.22 to 1.5.27.1 #391

Closed dependabot[bot] closed 1 month ago

dependabot[bot] commented 1 month ago

Bumps AkkaVersion from 1.5.22 to 1.5.27.1. Updates Akka.Persistence.Query.Sql from 1.5.22 to 1.5.27.1

Release notes

Sourced from Akka.Persistence.Query.Sql's releases.

akka.net v1.5.27.1

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

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:

... (truncated)

Changelog

Sourced from Akka.Persistence.Query.Sql's changelog.

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

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:

... (truncated)

Commits
  • 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
  • b34d645 V1.5.27 release notes (#7303)
  • 6a81fd3 Akka.Cluster.Tools: deprecate ClustersSingletonManagerSettings.ConsiderAppVer...
  • 7180810 Akka.Cluster.Tools: fix mutability and oldest state bugs with `ClusterSinglet...
  • 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 ca...
  • f4501e8 migrated ClusterSingletonManager to switch statements (#7296)
  • Additional commits viewable in compare view


Updates Akka.Persistence.Sql.Common from 1.5.22 to 1.5.27.1

Release notes

Sourced from Akka.Persistence.Sql.Common's releases.

akka.net v1.5.27.1

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

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:

... (truncated)

Changelog

Sourced from Akka.Persistence.Sql.Common's changelog.

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

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:

... (truncated)

Commits
  • 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
  • b34d645 V1.5.27 release notes (#7303)
  • 6a81fd3 Akka.Cluster.Tools: deprecate ClustersSingletonManagerSettings.ConsiderAppVer...
  • 7180810 Akka.Cluster.Tools: fix mutability and oldest state bugs with `ClusterSinglet...
  • 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 ca...
  • f4501e8 migrated ClusterSingletonManager to switch statements (#7296)
  • Additional commits viewable in compare view


Updates Akka.Persistence.Sql.TestKit from 1.5.22 to 1.5.27.1

Release notes

Sourced from Akka.Persistence.Sql.TestKit's releases.

akka.net v1.5.27.1

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

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:

... (truncated)

Changelog

Sourced from Akka.Persistence.Sql.TestKit's changelog.

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

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:

... (truncated)

Commits
  • 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
  • b34d645 V1.5.27 release notes (#7303)
  • 6a81fd3 Akka.Cluster.Tools: deprecate ClustersSingletonManagerSettings.ConsiderAppVer...
  • 7180810 Akka.Cluster.Tools: fix mutability and oldest state bugs with `ClusterSinglet...
  • 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 ca...
  • f4501e8 migrated ClusterSingletonManager to switch statements (#7296)
  • Additional commits viewable in compare view


Updates Akka.Persistence.TCK from 1.5.22 to 1.5.27.1

Release notes

Sourced from Akka.Persistence.TCK's releases.

akka.net v1.5.27.1

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

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:

... (truncated)

Changelog

Sourced from Akka.Persistence.TCK's changelog.

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

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:

... (truncated)

Commits
  • 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
  • b34d645 V1.5.27 release notes (#7303)
  • 6a81fd3 Akka.Cluster.Tools: deprecate ClustersSingletonManagerSettings.ConsiderAppVer...
  • 7180810 Akka.Cluster.Tools: fix mutability and oldest state bugs with `ClusterSinglet...
  • 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 ca...
  • f4501e8 migrated ClusterSingletonManager to switch statements (#7296)
  • Additional commits viewable in compare view


Updates Akka.TestKit.Xunit2 from 1.5.22 to 1.5.27.1

Release notes

Sourced from Akka.TestKit.Xunit2's releases.

akka.net v1.5.27.1

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

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:

... (truncated)

Changelog

Sourced from Akka.TestKit.Xunit2's changelog.

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

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:

Aaronontheweb commented 1 month ago

@dependabot rebase