You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2021/06/02 09:47:15 UTC

[ignite-3] branch main updated: IGNITE-14802 Fix flaky test ConnectionManagerTest#testReuseIncomingConnection (#156)

This is an automated email from the ASF dual-hosted git repository.

ibessonov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 37083a1  IGNITE-14802 Fix flaky test ConnectionManagerTest#testReuseIncomingConnection (#156)
37083a1 is described below

commit 37083a185ac01e1b346e086434012f454f31d5bf
Author: Semyon Danilov <sa...@yandex.ru>
AuthorDate: Wed Jun 2 12:45:28 2021 +0300

    IGNITE-14802 Fix flaky test ConnectionManagerTest#testReuseIncomingConnection (#156)
---
 .../network/internal/netty/ConnectionManagerTest.java   | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/network/internal/netty/ConnectionManagerTest.java b/modules/network/src/integrationTest/java/org/apache/ignite/network/internal/netty/ConnectionManagerTest.java
index 4862080..852882b 100644
--- a/modules/network/src/integrationTest/java/org/apache/ignite/network/internal/netty/ConnectionManagerTest.java
+++ b/modules/network/src/integrationTest/java/org/apache/ignite/network/internal/netty/ConnectionManagerTest.java
@@ -98,6 +98,8 @@ public class ConnectionManagerTest {
     public void testReuseIncomingConnection() throws Exception {
         String msgText = "test";
 
+        TestMessage testMessage = TestMessageFactory.testMessage().msg("test").build();
+
         int port1 = 4000;
         int port2 = 4001;
 
@@ -110,8 +112,17 @@ public class ConnectionManagerTest {
 
         NettySender senderFrom1to2 = manager1.channel(null, new InetSocketAddress(port2)).get(3, TimeUnit.SECONDS);
 
-        // Ensure a handshake has finished on both sides.
-        senderFrom1to2.send(TestMessageFactory.testMessage().msg("test").build()).get(3, TimeUnit.SECONDS);
+        // Ensure a handshake has finished on both sides by sending a message.
+        // TODO: IGNITE-14085 When the recovery protocol is implemented replace this with simple
+        // CompletableFuture#get called on the send future.
+        var messageReceivedOn2 = new CompletableFuture<Void>();
+
+        // If the message is received, that means that the handshake was successfully performed.
+        manager2.addListener((address, message) -> messageReceivedOn2.complete(null));
+
+        senderFrom1to2.send(testMessage);
+
+        messageReceivedOn2.get(3, TimeUnit.SECONDS);
 
         NettySender senderFrom2to1 = manager2.channel(manager1.consistentId(), new InetSocketAddress(port1)).get(3, TimeUnit.SECONDS);
 
@@ -121,8 +132,6 @@ public class ConnectionManagerTest {
 
         assertEquals(clientLocalAddress, clientRemoteAddress);
 
-        TestMessage testMessage = TestMessageFactory.testMessage().msg("test").build();
-
         senderFrom2to1.send(testMessage).get(3, TimeUnit.SECONDS);
 
         NetworkMessage receivedMessage = fut.get(3, TimeUnit.SECONDS);