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

rpuch 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 fb591a48fb7 IGNITE-27462 Restore specifics of 
ItTxDistributedTestSingleNodeNoCleanupMessage (#7316)
fb591a48fb7 is described below

commit fb591a48fb7f2f2d2544fd1d170e03ec6195c03d
Author: Roman Puchkovskiy <[email protected]>
AuthorDate: Sat Dec 27 12:37:41 2025 +0400

    IGNITE-27462 Restore specifics of 
ItTxDistributedTestSingleNodeNoCleanupMessage (#7316)
---
 ...xDistributedTestSingleNodeNoCleanupMessage.java | 31 +++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
index 0e22ded3895..8ec58100969 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.distributed;
 
+import static java.util.concurrent.CompletableFuture.completedFuture;
 import static 
org.apache.ignite.internal.replicator.ReplicatorConstants.DEFAULT_IDLE_SAFE_TIME_PROPAGATION_PERIOD_MILLISECONDS;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -27,6 +28,7 @@ import static org.mockito.Mockito.mock;
 
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.Executor;
@@ -43,11 +45,15 @@ import org.apache.ignite.internal.metrics.TestMetricManager;
 import org.apache.ignite.internal.network.ClusterNodeResolver;
 import org.apache.ignite.internal.network.ClusterService;
 import org.apache.ignite.internal.network.InternalClusterNode;
+import org.apache.ignite.internal.partition.replicator.FuturesCleanupResult;
+import org.apache.ignite.internal.partition.replicator.ReplicaPrimacy;
 import 
org.apache.ignite.internal.partition.replicator.schema.ValidationSchemasSource;
 import org.apache.ignite.internal.placementdriver.PlacementDriver;
 import org.apache.ignite.internal.raft.service.RaftGroupService;
+import org.apache.ignite.internal.replicator.ReplicaResult;
 import org.apache.ignite.internal.replicator.ReplicaService;
 import org.apache.ignite.internal.replicator.ZonePartitionId;
+import org.apache.ignite.internal.replicator.message.ReplicaRequest;
 import org.apache.ignite.internal.schema.SchemaRegistry;
 import org.apache.ignite.internal.schema.SchemaSyncService;
 import org.apache.ignite.internal.storage.MvPartitionStorage;
@@ -60,6 +66,7 @@ import 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaL
 import 
org.apache.ignite.internal.table.distributed.replicator.TransactionStateResolver;
 import org.apache.ignite.internal.table.metrics.TableMetricSource;
 import org.apache.ignite.internal.tx.InternalTransaction;
+import org.apache.ignite.internal.tx.LockManager;
 import org.apache.ignite.internal.tx.TxManager;
 import org.apache.ignite.internal.tx.configuration.TransactionConfiguration;
 import org.apache.ignite.internal.tx.impl.HeapLockManager;
@@ -67,6 +74,7 @@ import 
org.apache.ignite.internal.tx.impl.RemotelyTriggeredResourceRegistry;
 import org.apache.ignite.internal.tx.impl.TransactionIdGenerator;
 import org.apache.ignite.internal.tx.impl.TransactionInflights;
 import org.apache.ignite.internal.tx.impl.TxManagerImpl;
+import 
org.apache.ignite.internal.tx.message.TableWriteIntentSwitchReplicaRequest;
 import org.apache.ignite.internal.tx.test.TestLocalRwTxCounter;
 import org.apache.ignite.internal.util.Lazy;
 import org.apache.ignite.internal.util.PendingComparableValuesTracker;
@@ -207,7 +215,24 @@ public class ItTxDistributedTestSingleNodeNoCleanupMessage 
extends TxAbstractTes
                         lowWatermark,
                         mock(FailureProcessor.class),
                         new 
TableMetricSource(QualifiedName.fromSimple("test_table"))
-                );
+                ) {
+                    @Override
+                    public CompletableFuture<ReplicaResult> 
process(ReplicaRequest request, ReplicaPrimacy replicaPrimacy, UUID senderId) {
+                        if (request instanceof 
TableWriteIntentSwitchReplicaRequest) {
+                            logger().info("Dropping cleanup request: {}", 
request);
+
+                            releaseTxLocks(
+                                    ((TableWriteIntentSwitchReplicaRequest) 
request).txId(),
+                                    txManager.lockManager()
+                            );
+
+                            FuturesCleanupResult cleanupResult = new 
FuturesCleanupResult(false, false, false);
+                            return completedFuture(new 
ReplicaResult(cleanupResult, null));
+                        }
+
+                        return super.process(request, replicaPrimacy, 
senderId);
+                    }
+                };
             }
         };
 
@@ -268,6 +293,10 @@ public class ItTxDistributedTestSingleNodeNoCleanupMessage 
extends TxAbstractTes
         assertEquals(200., accounts.recordView().get(null, 
makeKey(1)).doubleValue("balance"));
     }
 
+    private static void releaseTxLocks(UUID txId, LockManager lockManager) {
+        lockManager.releaseAll(txId);
+    }
+
     @Override
     protected int nodes() {
         return 1;

Reply via email to