You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sd...@apache.org on 2023/07/21 13:02:32 UTC

[ignite-3] branch main updated (b687c3b0b8 -> a8a37e694a)

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

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


    from b687c3b0b8 Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)
     new 86290418a7 Revert "Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)"
     new a8a37e694a IGNITE-19996 Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:


[ignite-3] 02/02: IGNITE-19996 Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)

Posted by sd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a8a37e694a1453e2989975470b505aa32c9f132e
Author: Semyon Danilov <sa...@yandex.ru>
AuthorDate: Fri Jul 21 14:23:21 2023 +0400

    IGNITE-19996 Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)
---
 .../internal/network/netty/ConnectionManager.java       |  4 +++-
 .../org/apache/ignite/raft/jraft/core/ItNodeTest.java   | 17 ++++++++++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java b/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java
index 11988c6b4c..2a77bfe720 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java
@@ -268,7 +268,9 @@ public class ConnectionManager implements ChannelCreationListener {
         ConnectorKey<String> key = new ConnectorKey<>(channel.consistentId(), getChannel(channel.channelId()));
         NettySender oldChannel = channels.put(key, channel);
 
-        assert oldChannel == null : "Incorrect channel creation flow";
+        // Old channel can still be in the map, but it must be closed already by the tie breaker in the
+        // handshake manager.
+        assert oldChannel == null || !oldChannel.isOpen() : "Incorrect channel creation flow";
     }
 
     /**
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
index 66e6bd1a6e..d8bf0aa892 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
@@ -2927,11 +2927,16 @@ public class ItNodeTest {
         List<TestPeer> peers = new ArrayList<>();
         peers.add(peer0);
 
-        for (int i = 1; i < 10; i++) {
+        int numPeers = 10;
+
+        for (int i = 1; i < numPeers; i++) {
             TestPeer peer = new TestPeer(testInfo, TestUtils.INIT_PORT + i);
             peers.add(peer);
             assertTrue(cluster.start(peer, false, 300));
         }
+
+        waitForTopologyOnEveryNode(numPeers);
+
         for (int i = 0; i < 9; i++) {
             leader = cluster.waitAndGetLeader();
             assertNotNull(leader);
@@ -3023,6 +3028,10 @@ public class ItNodeTest {
 
         verify(raftGrpEvtsLsnr, never()).onNewPeersConfigurationApplied(any(), any());
 
+        // Wait until every node sees every other node, otherwise
+        // changePeersAsync can fail.
+        waitForTopologyOnEveryNode(numPeers);
+
         for (int i = 0; i < 4; i++) {
             leader = cluster.getLeader();
             assertNotNull(leader);
@@ -3967,6 +3976,12 @@ public class ItNodeTest {
         }
     }
 
+    private void waitForTopologyOnEveryNode(int count) {
+        cluster.getAllNodes().forEach(peerId -> {
+            assertTrue(waitForTopology(cluster, peerId, count, TimeUnit.SECONDS.toMillis(10)));
+        });
+    }
+
     private static TestPeer findById(Collection<TestPeer> peers, PeerId id) {
         return peers.stream().filter(t -> t.getPeerId().equals(id)).findAny().orElseThrow();
     }


[ignite-3] 01/02: Revert "Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)"

Posted by sd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 86290418a736e016fa0a1ee7d1cc88ebb59808c5
Author: Semyon Danilov <sa...@yandex.ru>
AuthorDate: Fri Jul 21 16:43:55 2023 +0400

    Revert "Fix ItNodeTest#testNewPeersConfigurationAppliedListener flaky (#2337)"
    
    This reverts commit b687c3b0b84e0a31778c46803eda1a44b01b6d89.
---
 .../internal/network/netty/ConnectionManager.java       |  4 +---
 .../org/apache/ignite/raft/jraft/core/ItNodeTest.java   | 17 +----------------
 2 files changed, 2 insertions(+), 19 deletions(-)

diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java b/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java
index 2a77bfe720..11988c6b4c 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/netty/ConnectionManager.java
@@ -268,9 +268,7 @@ public class ConnectionManager implements ChannelCreationListener {
         ConnectorKey<String> key = new ConnectorKey<>(channel.consistentId(), getChannel(channel.channelId()));
         NettySender oldChannel = channels.put(key, channel);
 
-        // Old channel can still be in the map, but it must be closed already by the tie breaker in the
-        // handshake manager.
-        assert oldChannel == null || !oldChannel.isOpen() : "Incorrect channel creation flow";
+        assert oldChannel == null : "Incorrect channel creation flow";
     }
 
     /**
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
index d8bf0aa892..66e6bd1a6e 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
@@ -2927,16 +2927,11 @@ public class ItNodeTest {
         List<TestPeer> peers = new ArrayList<>();
         peers.add(peer0);
 
-        int numPeers = 10;
-
-        for (int i = 1; i < numPeers; i++) {
+        for (int i = 1; i < 10; i++) {
             TestPeer peer = new TestPeer(testInfo, TestUtils.INIT_PORT + i);
             peers.add(peer);
             assertTrue(cluster.start(peer, false, 300));
         }
-
-        waitForTopologyOnEveryNode(numPeers);
-
         for (int i = 0; i < 9; i++) {
             leader = cluster.waitAndGetLeader();
             assertNotNull(leader);
@@ -3028,10 +3023,6 @@ public class ItNodeTest {
 
         verify(raftGrpEvtsLsnr, never()).onNewPeersConfigurationApplied(any(), any());
 
-        // Wait until every node sees every other node, otherwise
-        // changePeersAsync can fail.
-        waitForTopologyOnEveryNode(numPeers);
-
         for (int i = 0; i < 4; i++) {
             leader = cluster.getLeader();
             assertNotNull(leader);
@@ -3976,12 +3967,6 @@ public class ItNodeTest {
         }
     }
 
-    private void waitForTopologyOnEveryNode(int count) {
-        cluster.getAllNodes().forEach(peerId -> {
-            assertTrue(waitForTopology(cluster, peerId, count, TimeUnit.SECONDS.toMillis(10)));
-        });
-    }
-
     private static TestPeer findById(Collection<TestPeer> peers, PeerId id) {
         return peers.stream().filter(t -> t.getPeerId().equals(id)).findAny().orElseThrow();
     }