Skip to content

Commit

Permalink
Fix server test
Browse files Browse the repository at this point in the history
  • Loading branch information
emreyigit committed Jul 3, 2024
1 parent e6d6885 commit 41c6cc5
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
namespace Hazelcast.Tests.Clustering
{
[Category("enterprise")]
//[ServerCondition("5.5")]
[ServerCondition("5.5")]
[Timeout(30_000)]
public class MemberPartitionGroupServerTests : MultiMembersRemoteTestBase
{
protected override string RcClusterConfiguration => Resources.ClusterPGEnabled;
Expand All @@ -39,38 +40,34 @@ public async Task TestMultiMemberRoutingWorks(RoutingStrategy routingStrategy)
var address3 = "127.0.0.1:5703";

// create a client with the given routing strategy
// var client1 = await CreateClient(routingStrategy, address1);
// var client2 = await CreateClient(routingStrategy, address2);
var client3 = await CreateClient(routingStrategy, address3);
var client1 = await CreateClient(routingStrategy, address1);
var client2 = await CreateClient(routingStrategy, address2);
var client3 = await CreateClient(routingStrategy, address3);

// Assert.AreEqual(RcCluster.Id, client1.Cluster.Name);
// Assert.AreEqual(RcCluster.Id, client2.Cluster.Name);
Assert.AreEqual(RcCluster.Id, client3.Cluster.Name);

// AssertClientOnlySees(client1, address1);
// AssertClientOnlySees(client2, address2);
// AssertClientOnlySees(client3, address3);
AssertClientOnlySees(client1, address1);
AssertClientOnlySees(client2, address2);
AssertClientOnlySees(client3, address3);

// Scale Up
var member4 = await AddMember();

// AssertClientOnlySees(client1, address1);
// AssertClientOnlySees(client2, address2);
// AssertClientOnlySees(client3, address3);
AssertClientOnlySees(client1, address1);
AssertClientOnlySees(client2, address2);
AssertClientOnlySees(client3, address3);

// Scale Down
await RemoveMember(member4.Uuid);

// AssertClientOnlySees(client1, address1);
// AssertClientOnlySees(client2, address2);
// AssertClientOnlySees(client3, address3);
AssertClientOnlySees(client1, address1);
AssertClientOnlySees(client2, address2);
AssertClientOnlySees(client3, address3);

// Kill a member and check if clients are still connected correct members
var memberId3 = RcMembers.Values.Where(m => address3.Equals($"{m.Host}:{m.Port}")).Select(m => m.Uuid).First();
await RemoveMember(memberId3);

// AssertClientOnlySees(client1, address1);
// AssertClientOnlySees(client2, address2);
AssertClientOnlySees(client1, address1);
AssertClientOnlySees(client2, address2);

await AssertEx.SucceedsEventually(()
=> Assert.That(client3.State, Is.EqualTo(ClientState.Disconnected)),
Expand All @@ -92,12 +89,13 @@ await AssertEx.SucceedsEventually(()
10_000, 500);

// Check if client1 is connected to the new member
// cannot use the old member id since we can only either kill or create members
// cannot use the old member id since we can only either kill or create member
Assert.That(client3.Members.Count(), Is.EqualTo(1));
Assert.That(client3.Members.First().Member.ConnectAddress, Is.EqualTo(nAddress3));

// AssertClientOnlySees(client2, address2);
//AssertClientOnlySees(client3, address3);
AssertClientOnlySees(client1, address1);
AssertClientOnlySees(client2, address2);
AssertClientOnlySees(client3, address3);
}

private void AssertClientOnlySees(HazelcastClient client, string address)
Expand Down Expand Up @@ -130,10 +128,10 @@ private async Task<HazelcastClient> CreateClient(RoutingStrategy routingStrategy
{
Console.WriteLine(eventArgs.State);
}));
args.LoggerFactory.Creator = () => Microsoft.Extensions.Logging.LoggerFactory.Create(
conf=>conf.AddConsole().SetMinimumLevel(LogLevel.Debug));
conf => conf.AddConsole().SetMinimumLevel(LogLevel.Debug));
})
.Build();

Expand Down
2 changes: 1 addition & 1 deletion src/Hazelcast.Net/Clustering/ClusterMembers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -911,7 +911,7 @@ internal ICollection<MemberInfo> FilterMembers(ICollection<MemberInfo> members)
_logger.LogDebug("Filtered members from member view: {RemovedCount} removed, {FilteredCount} filtered," +
" {MembersCount} total. Removed Member Ids :[{Members}]",
removedMembers.Count, filteredMembers.Count, members.Count,
string.Join(", ", members.Select(m => m.Id.ToShortString())));
string.Join(", ", removedMembers.Select(m => m.Id.ToShortString())));
}

return filteredMembers;
Expand Down
2 changes: 1 addition & 1 deletion src/Hazelcast.Net/Clustering/MemberPartitionGroup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ public void RemoveSubsetMember(Guid memberId)

var newGroup = new MemberGroups(clearedGroup, _currentGroups.Version, _currentGroups.ClusterId, _currentGroups.MemberReceivedFrom);

SetSubsetMembers(newGroup);
_currentGroups = newGroup.SelectedGroup.Count > 0 ? newGroup : new MemberGroups(new List<IList<Guid>>(0), MemberPartitionGroup.InvalidVersion, Guid.Empty, Guid.Empty);
}
}
}
Expand Down

0 comments on commit 41c6cc5

Please sign in to comment.