You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sa...@apache.org on 2022/05/17 15:53:02 UTC

[ignite-3] branch main updated: IGNITE-16718 ItIgniteNodeRestartTest#testCfgGap is flaky (#810)

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

sanpwc 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 c508162db IGNITE-16718 ItIgniteNodeRestartTest#testCfgGap is flaky (#810)
c508162db is described below

commit c508162db66e60e4c4dc7a4a19695b29f4deb799
Author: Alexander Lapin <la...@gmail.com>
AuthorDate: Tue May 17 18:52:58 2022 +0300

    IGNITE-16718 ItIgniteNodeRestartTest#testCfgGap is flaky (#810)
---
 .../ignite/internal/runner/app/ItIgniteNodeRestartTest.java | 13 ++++++++++---
 .../org/apache/ignite/internal/tx/impl/TransactionImpl.java | 11 ++++++++++-
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index 49ec18799..829a197f4 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -898,12 +898,17 @@ public class ItIgniteNodeRestartTest extends IgniteAbstractTest {
      * @param testInfo Test info.
      */
     @Test
-    @Disabled("IGNITE-16718")
     public void testCfgGap(TestInfo testInfo) {
         final int nodes = 4;
 
+        String nodeFinderConfig = IntStream.range(0, nodes)
+                .mapToObj(i -> "\"localhost:" + (DEFAULT_NODE_PORT + i) + "\"")
+                .collect(joining(",", "[", "]"));
+
         for (int i = 0; i < nodes; i++) {
-            startNode(testInfo, i);
+            String cfg = IgniteStringFormatter.format(NODE_BOOTSTRAP_CFG, DEFAULT_NODE_PORT + i, nodeFinderConfig);
+
+            startNode(testInfo, i, null, null, cfg);
         }
 
         createTableWithData(CLUSTER_NODES.get(0), "t1", nodes);
@@ -920,7 +925,9 @@ public class ItIgniteNodeRestartTest extends IgniteAbstractTest {
 
         log.info("Starting the node.");
 
-        Ignite newNode = startNode(nodes - 1, igniteName, null, workDir);
+        String nodeCfg = IgniteStringFormatter.format(NODE_BOOTSTRAP_CFG, DEFAULT_NODE_PORT + nodes - 1, nodeFinderConfig);
+
+        startNode(nodes - 1, igniteName, nodeCfg, workDir);
 
         checkTableWithData(CLUSTER_NODES.get(0), "t1");
         checkTableWithData(CLUSTER_NODES.get(0), "t2");
diff --git a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TransactionImpl.java b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TransactionImpl.java
index dba006b1c..14b5c4713 100644
--- a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TransactionImpl.java
+++ b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TransactionImpl.java
@@ -31,6 +31,7 @@ import org.apache.ignite.internal.tx.TxManager;
 import org.apache.ignite.internal.tx.TxState;
 import org.apache.ignite.lang.IgniteLogger;
 import org.apache.ignite.network.NetworkAddress;
+import org.apache.ignite.raft.client.Peer;
 import org.apache.ignite.raft.client.service.RaftGroupService;
 import org.apache.ignite.tx.TransactionException;
 import org.jetbrains.annotations.NotNull;
@@ -169,8 +170,16 @@ public class TransactionImpl implements InternalTransaction {
                     address, commit, timestamp, local, entry.getValue());
         }
 
+        Set<NetworkAddress> allEnlistedNodes = new HashSet<>();
+
+        for (RaftGroupService svc : enlisted) {
+            for (Peer peer : svc.peers()) {
+                allEnlistedNodes.add(peer.address());
+            }
+        }
+
         // Handle coordinator's tx.
-        futs[i] = tmp.containsKey(address) ? CompletableFuture.completedFuture(null) :
+        futs[i] = allEnlistedNodes.contains(address) ? CompletableFuture.completedFuture(null) :
                 commit ? txManager.commitAsync(timestamp) : txManager.rollbackAsync(timestamp);
 
         return CompletableFuture.allOf(futs);