You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ap...@apache.org on 2025/04/11 11:56:10 UTC

(ignite-3) branch main updated: IGNITE-25100 Fix flaky ItZoneTxFinishTest (#5609)

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

apolovtsev 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 adab5247d94 IGNITE-25100 Fix flaky ItZoneTxFinishTest (#5609)
adab5247d94 is described below

commit adab5247d94e37ce63ca5af51c60601a4b7bad33
Author: Alexander Polovtcev <al...@gmail.com>
AuthorDate: Fri Apr 11 14:56:04 2025 +0300

    IGNITE-25100 Fix flaky ItZoneTxFinishTest (#5609)
---
 .../partition/replicator/ItTransactionsVacuumTest.java     |  3 ++-
 .../internal/partition/replicator/ItZoneTxFinishTest.java  | 14 +++++++-------
 .../internal/partition/replicator/fixtures/Node.java       |  2 +-
 .../replicator/PartitionReplicaLifecycleManager.java       |  4 ++--
 4 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
index cdebe744153..991331c6007 100644
--- a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
+++ b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.partition.replicator;
 
+import static java.util.Objects.requireNonNull;
 import static org.apache.ignite.internal.TestWrappers.unwrapIgniteTransaction;
 import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static org.apache.ignite.internal.tx.impl.ResourceVacuumManager.RESOURCE_VACUUM_INTERVAL_MILLISECONDS_PROPERTY;
@@ -115,7 +116,7 @@ public class ItTransactionsVacuumTest extends ItAbstractColocationTest {
      * @return Transaction meta.
      */
     private static TransactionMeta persistentTxState(Node node, int zoneId, int partId, UUID txId) {
-        return IgniteTestUtils.bypassingThreadAssertions(() -> node.txStatePartitionStorage(zoneId, partId).get(txId));
+        return IgniteTestUtils.bypassingThreadAssertions(() -> requireNonNull(node.txStatePartitionStorage(zoneId, partId)).get(txId));
     }
 
     /**
diff --git a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItZoneTxFinishTest.java b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItZoneTxFinishTest.java
index 5bc2f7a185c..dffe20f2486 100644
--- a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItZoneTxFinishTest.java
+++ b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItZoneTxFinishTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.partition.replicator;
 
+import static java.util.Objects.requireNonNull;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toList;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableImpl;
@@ -69,8 +70,6 @@ class ItZoneTxFinishTest extends AbstractZoneReplicationTest {
         int tableId1 = createTable(TEST_ZONE_NAME, TEST_TABLE_NAME1);
         int tableId2 = createTable(TEST_ZONE_NAME, TEST_TABLE_NAME2);
 
-        var zonePartitionId = new ZonePartitionId(zoneId, 0);
-
         Node node = cluster.get(0);
 
         KeyValueView<Integer, Integer> kvView1 = node.tableManager.table(TEST_TABLE_NAME1).keyValueView(Integer.class, Integer.class);
@@ -86,10 +85,11 @@ class ItZoneTxFinishTest extends AbstractZoneReplicationTest {
         }
 
         for (Node currentNode : cluster) {
-            assertTrue(waitForCondition(
-                    () -> !txStatesInPartitionStorage(currentNode.txStatePartitionStorage(zoneId, 0)).isEmpty(),
-                    SECONDS.toMillis(10)
-            ));
+            assertTrue(waitForCondition(() -> {
+                TxStatePartitionStorage txStorage = currentNode.txStatePartitionStorage(zoneId, 0);
+
+                return txStorage != null && !txStatesInPartitionStorage(txStorage).isEmpty();
+            }, SECONDS.toMillis(10)));
         }
 
         List<Executable> assertions = new ArrayList<>();
@@ -99,7 +99,7 @@ class ItZoneTxFinishTest extends AbstractZoneReplicationTest {
 
             assertions.add(() -> assertTxStateStorageAsExpected(
                     "Node " + finalI + " zone",
-                    currentNode.txStatePartitionStorage(zoneId, 0),
+                    requireNonNull(currentNode.txStatePartitionStorage(zoneId, 0)),
                     1,
                     commit
             ));
diff --git a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
index e79bb817618..ab98769cbc0 100644
--- a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
+++ b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
@@ -947,7 +947,7 @@ public class Node {
         }
     }
 
-    public TxStatePartitionStorage txStatePartitionStorage(int zoneId, int partitionId) {
+    public @Nullable TxStatePartitionStorage txStatePartitionStorage(int zoneId, int partitionId) {
         return partitionReplicaLifecycleManager.txStatePartitionStorage(zoneId, partitionId);
     }
 
diff --git a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
index e0ce0569674..dd8adce8777 100644
--- a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
+++ b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
@@ -1592,8 +1592,8 @@ public class PartitionReplicaLifecycleManager extends
     }
 
     @TestOnly
-    public TxStatePartitionStorage txStatePartitionStorage(int zoneId, int partitionId) {
-        return requireNonNull(zoneResourcesManager.txStatePartitionStorage(zoneId, partitionId));
+    public @Nullable TxStatePartitionStorage txStatePartitionStorage(int zoneId, int partitionId) {
+        return zoneResourcesManager.txStatePartitionStorage(zoneId, partitionId);
     }
 
     @TestOnly