Skip to content

Commit

Permalink
Member.UpNumber propagated across cluster
Browse files Browse the repository at this point in the history
ActorPath operator / fix for empty element
ClusterSharding MemberAgeComparer reverse order
  • Loading branch information
zbynek001 committed Mar 17, 2016
1 parent b107397 commit 4323cc5
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 7 deletions.
4 changes: 2 additions & 2 deletions src/contrib/cluster/Akka.Cluster.Sharding/ShardRegion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ private MemberAgeComparer() { }

public int Compare(Member x, Member y)
{
if (y.IsOlderThan(x)) return -1;
return x.IsOlderThan(y) ? 1 : 0;
if (x.IsOlderThan(y)) return -1;
return y.IsOlderThan(x) ? 1 : 0;
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/core/Akka.Cluster.Tests/TestMember.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public static Member Create(Address address, MemberStatus status)

public static Member Create(Address address, MemberStatus status, ImmutableHashSet<string> roles)
{
return Member.Create(new UniqueAddress(address, 0), status, roles);
return Member.Create(new UniqueAddress(address, 0), 0, status, roles);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/core/Akka.Cluster/Member.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ public static Member Removed(UniqueAddress node)
readonly ImmutableHashSet<string> _roles;
public ImmutableHashSet<string> Roles { get { return _roles; } }

public static Member Create(UniqueAddress uniqueAddress, MemberStatus status, ImmutableHashSet<string> roles)
public static Member Create(UniqueAddress uniqueAddress, int upNumber, MemberStatus status, ImmutableHashSet<string> roles)
{
return new Member(uniqueAddress, 0, status, roles);
return new Member(uniqueAddress, upNumber, status, roles);
}

Member(UniqueAddress uniqueAddress, int upNumber, MemberStatus status, ImmutableHashSet<string> roles)
Expand Down
2 changes: 1 addition & 1 deletion src/core/Akka.Cluster/Proto/ClusterMessageSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ private Gossip GossipFromProto(Msg.Gossip gossip)
return new Reachability(recordBuilder.ToImmutable(), versionsBuilder.ToImmutable());
};

Func<Msg.Member, Member> memberFromProto = member => Member.Create(addressMapping[member.AddressIndex], MemberStatusFromProto[member.Status],
Func<Msg.Member, Member> memberFromProto = member => Member.Create(addressMapping[member.AddressIndex], member.HasUpNumber ? member.UpNumber : 0, MemberStatusFromProto[member.Status],
member.RolesIndexesList.Select(x => roleMapping[x]).ToImmutableHashSet());

var members = gossip.MembersList.Select(memberFromProto).ToImmutableSortedSet(Member.Ordering);
Expand Down
3 changes: 2 additions & 1 deletion src/core/Akka/Actor/ActorPath.cs
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,8 @@ public bool Equals(ActorPath other)
var a = path;
foreach (string element in name)
{
a = a / element;
if(!string.IsNullOrEmpty(element))
a = a / element;
}
return a;
}
Expand Down

0 comments on commit 4323cc5

Please sign in to comment.