From 9fb128dbd2ae96b3a04367eca5d6649fda9929d1 Mon Sep 17 00:00:00 2001 From: emreyigit Date: Mon, 1 Dec 2025 17:50:44 +0300 Subject: [PATCH 1/4] Fix Hazelcast.Tests.Clustering.ConnectMembersTests.TestDelayedQueue --- src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs b/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs index 2696c0d86..8fcb4d0d2 100644 --- a/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs +++ b/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs @@ -248,7 +248,9 @@ await AssertEx.SucceedsEventually(() => // each member retried twice = twice the 1s delay = 2s // we should not have completed faster than that, even so the code runs fully in-memory - Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromSeconds(2))); + // There is some leeway though, so we accept 10ms less since new runtimes are faster. Also, request time calculation + // in the queue depend on epoch calculation which may have some small overhead. + Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromSeconds(2) - TimeSpan.FromMilliseconds(10))); HConsole.WriteLine(this, $"Elapsed: {elapsed}"); Assert.That(queue.Count, Is.EqualTo(0)); From 5e213dd7febcfc3fdfe2382b6c45dc0fe4b18fea Mon Sep 17 00:00:00 2001 From: emreyigit Date: Mon, 1 Dec 2025 18:00:05 +0300 Subject: [PATCH 2/4] Fixes TestDelayedQueue Test --- src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs | 4 +--- src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs b/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs index 8fcb4d0d2..2696c0d86 100644 --- a/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs +++ b/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs @@ -248,9 +248,7 @@ await AssertEx.SucceedsEventually(() => // each member retried twice = twice the 1s delay = 2s // we should not have completed faster than that, even so the code runs fully in-memory - // There is some leeway though, so we accept 10ms less since new runtimes are faster. Also, request time calculation - // in the queue depend on epoch calculation which may have some small overhead. - Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromSeconds(2) - TimeSpan.FromMilliseconds(10))); + Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromSeconds(2))); HConsole.WriteLine(this, $"Elapsed: {elapsed}"); Assert.That(queue.Count, Is.EqualTo(0)); diff --git a/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs b/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs index 7af579ba0..d9c7bc2ad 100644 --- a/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs +++ b/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs @@ -25,7 +25,7 @@ internal class MemberConnectionRequest public MemberConnectionRequest(MemberInfo member) { Member = member; - _requestDate = DateTime.UtcNow; + _requestDate = Clock.Now; } public MemberInfo Member { get; } From d364104a2cb5a08ad4f7ddd0e3071e6331f28725 Mon Sep 17 00:00:00 2001 From: emreyigit Date: Tue, 2 Dec 2025 11:57:48 +0300 Subject: [PATCH 3/4] Put error margin on test --- src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs b/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs index 2696c0d86..5288f6f80 100644 --- a/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs +++ b/src/Hazelcast.Net.Tests/Clustering/ConnectMembersTests.cs @@ -248,7 +248,9 @@ await AssertEx.SucceedsEventually(() => // each member retried twice = twice the 1s delay = 2s // we should not have completed faster than that, even so the code runs fully in-memory - Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromSeconds(2))); + // allow a small margin of error since catching the delayed item with 0 delay is not exact, and implementation has already + // 10ms margin. + Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromSeconds(2) - TimeSpan.FromMilliseconds(15))); HConsole.WriteLine(this, $"Elapsed: {elapsed}"); Assert.That(queue.Count, Is.EqualTo(0)); From 0abd889fdf93b762b91dab58a37a0afe7430eb65 Mon Sep 17 00:00:00 2001 From: emreyigit Date: Tue, 2 Dec 2025 15:19:48 +0300 Subject: [PATCH 4/4] Revert clock change --- src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs b/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs index d9c7bc2ad..7af579ba0 100644 --- a/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs +++ b/src/Hazelcast.Net/Clustering/MemberConnectionRequest.cs @@ -25,7 +25,7 @@ internal class MemberConnectionRequest public MemberConnectionRequest(MemberInfo member) { Member = member; - _requestDate = Clock.Now; + _requestDate = DateTime.UtcNow; } public MemberInfo Member { get; }