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

sk0x50 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 62a19d817be IGNITE-20320 Avoid sharing HybridClock between nodes in 
tests (#6642)
62a19d817be is described below

commit 62a19d817be7ce114e9883e072b8c7ac36ee3b8b
Author: Slava Koptilin <[email protected]>
AuthorDate: Thu Sep 25 14:24:55 2025 +0300

    IGNITE-20320 Avoid sharing HybridClock between nodes in tests (#6642)
---
 .../org/apache/ignite/client/ConnectionTest.java   |  4 ++--
 .../ignite/client/FeatureCompatibilityTest.java    |  6 ++----
 .../ObservableTimestampComputePropagationTest.java |  5 ++---
 .../client/ObservableTimestampPropagationTest.java |  6 ++----
 .../ignite/client/PartitionAwarenessTest.java      | 14 ++++++++------
 .../java/org/apache/ignite/client/TestServer.java  | 15 ++++++---------
 .../org/apache/ignite/client/fakes/FakeIgnite.java | 20 ++++++++++++++++++--
 .../impl/ItMetaStorageManagerImplTest.java         |  6 ++++--
 .../impl/ItMetaStorageServicePersistenceTest.java  |  7 +++----
 .../service/ItAbstractListenerSnapshotTest.java    |  5 +++--
 .../ItZonePartitionRaftListenerRecoveryTest.java   |  1 -
 .../raft/ZonePartitionRaftListenerTest.java        |  1 -
 .../SnapshotAwarePartitionDataStorageTest.java     | 22 ++++++++++++----------
 .../placementdriver/LeaseNegotiationTest.java      |  6 ++++--
 .../PartitionRaftCommandsSerializationTest.java    |  5 +----
 .../raft/PartitionCommandListenerTest.java         |  6 ++----
 16 files changed, 69 insertions(+), 60 deletions(-)

diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java 
b/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
index 2aa1124553c..7a72dc401e6 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
@@ -138,7 +138,7 @@ public class ConnectionTest extends AbstractClientTest {
         FakeIgnite ignite = new FakeIgnite(nodeName);
 
         try (TestServer testServer =
-                new TestServer(0, ignite, null, null, nodeName, 
UUID.randomUUID(), null, null, null, false, null)) {
+                new TestServer(0, ignite, null, null, nodeName, 
UUID.randomUUID(), null, null, false, null)) {
 
             Builder clientBuilder = IgniteClient.builder()
                     .addresses("127.0.0.1:" + testServer.port())
@@ -166,7 +166,7 @@ public class ConnectionTest extends AbstractClientTest {
         FakeIgnite ignite = new FakeIgnite(nodeName);
 
         try (TestServer testServer =
-                new TestServer(0, ignite, null, null, nodeName, 
UUID.randomUUID(), null, null, null, false, null)) {
+                new TestServer(0, ignite, null, null, nodeName, 
UUID.randomUUID(), null, null, false, null)) {
 
             Builder clientBuilder = IgniteClient.builder()
                     .addresses("127.0.0.1:" + testServer.port())
diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/FeatureCompatibilityTest.java
 
b/modules/client/src/test/java/org/apache/ignite/client/FeatureCompatibilityTest.java
index dcb27b1d457..01f85d2ea23 100644
--- 
a/modules/client/src/test/java/org/apache/ignite/client/FeatureCompatibilityTest.java
+++ 
b/modules/client/src/test/java/org/apache/ignite/client/FeatureCompatibilityTest.java
@@ -47,10 +47,8 @@ public class FeatureCompatibilityTest extends 
BaseIgniteAbstractTest {
     private IgniteClient client;
 
     private void startServer(@Nullable BitSet features) {
-        TestHybridClock clock = new TestHybridClock(System::currentTimeMillis);
-
-        ignite = new FakeIgnite("server-1");
-        testServer = new TestServer(0, ignite, reqId -> false, null, 
"server-1", UUID.randomUUID(), null, null, clock, true, features);
+        ignite = new FakeIgnite("server-1", new 
TestHybridClock(System::currentTimeMillis));
+        testServer = new TestServer(0, ignite, reqId -> false, null, 
"server-1", UUID.randomUUID(), null, null, true, features);
 
         client = IgniteClient.builder().addresses("127.0.0.1:" + 
testServer.port()).build();
     }
diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampComputePropagationTest.java
 
b/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampComputePropagationTest.java
index a7b7eb38753..83f626b2385 100644
--- 
a/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampComputePropagationTest.java
+++ 
b/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampComputePropagationTest.java
@@ -60,9 +60,8 @@ public class ObservableTimestampComputePropagationTest 
extends BaseIgniteAbstrac
 
     @BeforeAll
     public static void startServers() {
-        TestHybridClock clock1 = new TestHybridClock(serverTimestamp::get);
-        var ignite1 = new FakeIgnite("server-1");
-        testServer = new TestServer(0, ignite1, null, null, "server-1", 
UUID.randomUUID(), null, null, clock1, true, null);
+        var ignite1 = new FakeIgnite("server-1", new 
TestHybridClock(serverTimestamp::get));
+        testServer = new TestServer(0, ignite1, null, null, "server-1", 
UUID.randomUUID(), null, null, true, null);
     }
 
     @AfterAll
diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampPropagationTest.java
 
b/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampPropagationTest.java
index 2b8ee6d2953..fcfba93f634 100644
--- 
a/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampPropagationTest.java
+++ 
b/modules/client/src/test/java/org/apache/ignite/client/ObservableTimestampPropagationTest.java
@@ -48,10 +48,8 @@ public class ObservableTimestampPropagationTest extends 
BaseIgniteAbstractTest {
 
     @BeforeAll
     public static void startServer2() {
-        TestHybridClock clock = new 
TestHybridClock(currentServerTimestamp::get);
-
-        ignite = new FakeIgnite("server-2");
-        testServer = new TestServer(0, ignite, null, null, "server-2", 
UUID.randomUUID(), null, null, clock, true, null);
+        ignite = new FakeIgnite("server-2", new 
TestHybridClock(currentServerTimestamp::get));
+        testServer = new TestServer(0, ignite, null, null, "server-2", 
UUID.randomUUID(), null, null, true, null);
 
         client = IgniteClient.builder().addresses("127.0.0.1:" + 
testServer.port()).build();
     }
diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/PartitionAwarenessTest.java
 
b/modules/client/src/test/java/org/apache/ignite/client/PartitionAwarenessTest.java
index f1c3e580c8a..5fa26b0df3d 100644
--- 
a/modules/client/src/test/java/org/apache/ignite/client/PartitionAwarenessTest.java
+++ 
b/modules/client/src/test/java/org/apache/ignite/client/PartitionAwarenessTest.java
@@ -56,7 +56,6 @@ import org.apache.ignite.internal.client.TcpIgniteClient;
 import org.apache.ignite.internal.client.sql.ClientSql;
 import org.apache.ignite.internal.client.sql.PartitionMappingProvider;
 import org.apache.ignite.internal.client.tx.ClientLazyTransaction;
-import org.apache.ignite.internal.hlc.HybridClockImpl;
 import org.apache.ignite.internal.streamer.SimplePublisher;
 import org.apache.ignite.internal.table.TableViewInternal;
 import org.apache.ignite.internal.testframework.IgniteTestUtils;
@@ -662,8 +661,11 @@ public class PartitionAwarenessTest extends 
AbstractClientTest {
         int tableId = 100500;
         String name = "DUMMY";
 
-        prepareServer(server, tableId, name);
-        prepareServer(server2, tableId, name);
+        // Lease start time must be the same on both servers.
+        long leaseStartTime = server.clock().nowLong();
+
+        prepareServer(server, tableId, name, leaseStartTime);
+        prepareServer(server2, tableId, name, leaseStartTime);
 
         executeSql(null, 0);
 
@@ -679,8 +681,7 @@ public class PartitionAwarenessTest extends 
AbstractClientTest {
         assertOpOnNode(nodeKey3, null, tx -> executeSql(tx, 3L));
     }
 
-    private void prepareServer(FakeIgnite server, int tableId, String name) {
-        long leaseStartTime = new HybridClockImpl().nowLong();
+    private void prepareServer(FakeIgnite server, int tableId, String name, 
long leaseStartTime) {
         initPrimaryReplicas(server.placementDriver(), null, leaseStartTime, 
tableId);
 
         createTable(server, tableId, name);
@@ -750,7 +751,8 @@ public class PartitionAwarenessTest extends 
AbstractClientTest {
     }
 
     private static void initPrimaryReplicas(@Nullable List<String> replicas) {
-        long leaseStartTime = new HybridClockImpl().nowLong();
+        // Lease start time must be the same on both servers.
+        long leaseStartTime = testServer.clock().nowLong();
 
         initPrimaryReplicas(testServer.placementDriver(), replicas, 
leaseStartTime);
         initPrimaryReplicas(testServer2.placementDriver(), replicas, 
leaseStartTime);
diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/TestServer.java 
b/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
index b73c1f57014..e7e30665e6b 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
@@ -62,7 +62,6 @@ import 
org.apache.ignite.internal.configuration.validation.TestConfigurationVali
 import org.apache.ignite.internal.eventlog.api.Event;
 import org.apache.ignite.internal.eventlog.api.EventLog;
 import org.apache.ignite.internal.hlc.HybridClock;
-import org.apache.ignite.internal.hlc.HybridClockImpl;
 import org.apache.ignite.internal.hlc.TestClockService;
 import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
 import org.apache.ignite.internal.manager.ComponentContext;
@@ -151,7 +150,6 @@ public class TestServer implements AutoCloseable {
                 clusterId,
                 securityConfiguration,
                 port,
-                null,
                 true,
                 null
         );
@@ -172,7 +170,6 @@ public class TestServer implements AutoCloseable {
             UUID clusterId,
             @Nullable SecurityConfiguration securityConfiguration,
             @Nullable Integer port,
-            @Nullable HybridClock clock,
             boolean enableRequestHandling,
             @Nullable BitSet features
     ) {
@@ -225,10 +222,6 @@ public class TestServer implements AutoCloseable {
         metrics = new ClientHandlerMetricSource();
         metrics.enable();
 
-        if (clock == null) {
-            clock = new HybridClockImpl();
-        }
-
         if (securityConfiguration == null) {
             authenticationManager = new DummyAuthenticationManager();
         } else {
@@ -264,7 +257,7 @@ public class TestServer implements AutoCloseable {
                         clusterInfo,
                         metrics,
                         authenticationManager,
-                        clock,
+                        ignite.clock(),
                         ignite.placementDriver(),
                         clientConnectorConfiguration,
                         features)
@@ -279,7 +272,7 @@ public class TestServer implements AutoCloseable {
                         mock(MetricManagerImpl.class),
                         metrics,
                         authenticationManager,
-                        new TestClockService(clock),
+                        new TestClockService(ignite.clock()),
                         new AlwaysSyncedSchemaSyncService(),
                         catalogService,
                         ignite.placementDriver(),
@@ -363,6 +356,10 @@ public class TestServer implements AutoCloseable {
         return catalogService;
     }
 
+    public HybridClock clock() {
+        return ignite.clock();
+    }
+
     /** {@inheritDoc} */
     @Override
     public void close() {
diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgnite.java 
b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgnite.java
index 2c1044a6113..98af14cab10 100644
--- 
a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgnite.java
+++ 
b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgnite.java
@@ -39,9 +39,9 @@ import org.apache.ignite.tx.IgniteTransactions;
 public class FakeIgnite implements Ignite {
     private final String name;
 
-    private final HybridClock clock = new HybridClockImpl();
+    private final HybridClock clock;
 
-    private final FakeTxManager txMgr = new FakeTxManager(clock);
+    private final FakeTxManager txMgr;
 
     /** Timestamp tracker. */
     private final HybridTimestampTracker hybridTimestampTracker = 
HybridTimestampTracker.atomicTracker(null);
@@ -67,6 +67,18 @@ public class FakeIgnite implements Ignite {
      * @param name Name.
      */
     public FakeIgnite(String name) {
+        this(name, new HybridClockImpl());
+    }
+
+    /**
+     * Creates a new instance of {@link FakeIgnite} with the given {@code 
name} and custom {@code clock}.
+     *
+     * @param name Name.
+     * @param clock Hybrid clock.
+     */
+    public FakeIgnite(String name, HybridClock clock) {
+        this.clock = clock;
+        this.txMgr = new FakeTxManager(clock);
         this.name = name;
         this.compute = new FakeCompute(name, this);
         this.tables = new FakeIgniteTables(compute, placementDriver);
@@ -124,4 +136,8 @@ public class FakeIgnite implements Ignite {
     public TxManager txManager() {
         return txMgr;
     }
+
+    public HybridClock clock() {
+        return clock;
+    }
 }
diff --git 
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
 
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
index 9e8b1e2b68b..9ee64595f43 100644
--- 
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
+++ 
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
@@ -133,6 +133,8 @@ public class ItMetaStorageManagerImplTest extends 
IgniteAbstractTest {
 
     private MetaStorageManagerImpl metaStorageManager;
 
+    private HybridClock clock;
+
     @InjectConfiguration
     private RaftConfiguration raftConfiguration;
 
@@ -150,7 +152,7 @@ public class ItMetaStorageManagerImplTest extends 
IgniteAbstractTest {
 
         clusterService = clusterService(testInfo, addr.port(), new 
StaticNodeFinder(List.of(addr)));
 
-        HybridClock clock = new HybridClockImpl();
+        clock = new HybridClockImpl();
 
         var raftGroupEventsClientListener = new 
RaftGroupEventsClientListener();
 
@@ -291,7 +293,7 @@ public class ItMetaStorageManagerImplTest extends 
IgniteAbstractTest {
                 mock(LogicalTopologyService.class),
                 raftManager,
                 storage,
-                new HybridClockImpl(),
+                clock,
                 mock(TopologyAwareRaftGroupServiceFactory.class),
                 new NoOpMetricManager(),
                 mock(MetastorageRepairStorage.class),
diff --git 
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServicePersistenceTest.java
 
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServicePersistenceTest.java
index 546c405b22d..19a3c194ab8 100644
--- 
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServicePersistenceTest.java
+++ 
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServicePersistenceTest.java
@@ -29,7 +29,6 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.function.BooleanSupplier;
 import org.apache.ignite.internal.failure.NoOpFailureManager;
 import org.apache.ignite.internal.hlc.HybridClock;
-import org.apache.ignite.internal.hlc.HybridClockImpl;
 import org.apache.ignite.internal.lang.ByteArray;
 import org.apache.ignite.internal.metastorage.Entry;
 import org.apache.ignite.internal.metastorage.TestMetasStorageUtils;
@@ -92,7 +91,7 @@ public class ItMetaStorageServicePersistenceTest extends 
ItAbstractListenerSnaps
                 followerNode.name(),
                 service,
                 new IgniteSpinBusyLock(),
-                new HybridClockImpl(),
+                server.options().getClock(),
                 followerNode.id()
         );
 
@@ -148,7 +147,7 @@ public class ItMetaStorageServicePersistenceTest extends 
ItAbstractListenerSnaps
     }
 
     @Override
-    public RaftGroupListener createListener(ClusterService service, Path 
listenerPersistencePath) {
+    public RaftGroupListener createListener(ClusterService service, RaftServer 
server, Path listenerPersistencePath) {
         String nodeName = service.nodeName();
 
         KeyValueStorage storage = storageByName.computeIfAbsent(nodeName, name 
-> {
@@ -165,7 +164,7 @@ public class ItMetaStorageServicePersistenceTest extends 
ItAbstractListenerSnaps
             return s;
         });
 
-        HybridClock clock = new HybridClockImpl();
+        HybridClock clock = server.options().getClock();
         return new MetaStorageListener(storage, clock, new 
ClusterTimeImpl(nodeName, new IgniteSpinBusyLock(), clock));
     }
 
diff --git 
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
 
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
index b488603186b..bf5f6007b7e 100644
--- 
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
+++ 
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
@@ -362,10 +362,11 @@ public abstract class ItAbstractListenerSnapshotTest<T 
extends RaftGroupListener
      * Creates raft group listener.
      *
      * @param service                 The cluster service.
+     * @param server                  The raft server that is starting a new 
raft node.
      * @param listenerPersistencePath Path to storage persistent data.
      * @return Raft group listener.
      */
-    public abstract RaftGroupListener createListener(ClusterService service, 
Path listenerPersistencePath);
+    public abstract RaftGroupListener createListener(ClusterService service, 
RaftServer server, Path listenerPersistencePath);
 
     /**
      * Returns raft group id for tests.
@@ -459,7 +460,7 @@ public abstract class ItAbstractListenerSnapshotTest<T 
extends RaftGroupListener
         server.startRaftNode(
                 new RaftNodeId(raftGroupId(), 
initialMemberConf.peer(service.topologyService().localMember().name())),
                 initialMemberConf,
-                createListener(service, componentWorkDir.dbPath()),
+                createListener(service, server, componentWorkDir.dbPath()),
                 defaults()
                         .commandsMarshaller(commandsMarshaller(service))
                         .setLogStorageFactory(partitionsLogStorageFactory)
diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
index e56ddaced06..9ced615c4fa 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/raft/ItZonePartitionRaftListenerRecoveryTest.java
@@ -385,7 +385,6 @@ class ItZonePartitionRaftListenerRecoveryTest extends 
IgniteAbstractTest {
         LeasePlacementDriver placementDriver = 
mock(LeasePlacementDriver.class);
         lenient().when(placementDriver.getCurrentPrimaryReplica(any(), 
any())).thenReturn(null);
 
-        HybridClock clock = new HybridClockImpl();
         ClockService clockService = mock(ClockService.class);
         lenient().when(clockService.current()).thenReturn(clock.current());
 
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/ZonePartitionRaftListenerTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/ZonePartitionRaftListenerTest.java
index b356886010b..0a683541f3d 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/ZonePartitionRaftListenerTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/ZonePartitionRaftListenerTest.java
@@ -555,7 +555,6 @@ class ZonePartitionRaftListenerTest extends 
BaseIgniteAbstractTest {
         LeasePlacementDriver placementDriver = 
mock(LeasePlacementDriver.class);
         lenient().when(placementDriver.getCurrentPrimaryReplica(any(), 
any())).thenReturn(null);
 
-        HybridClock clock = new HybridClockImpl();
         ClockService clockService = mock(ClockService.class);
         lenient().when(clockService.current()).thenReturn(clock.current());
 
diff --git 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/SnapshotAwarePartitionDataStorageTest.java
 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/SnapshotAwarePartitionDataStorageTest.java
index 5a3af22c399..c895cae6709 100644
--- 
a/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/SnapshotAwarePartitionDataStorageTest.java
+++ 
b/modules/partition-replicator/src/test/java/org/apache/ignite/internal/partition/replicator/raft/snapshot/outgoing/SnapshotAwarePartitionDataStorageTest.java
@@ -245,7 +245,7 @@ class SnapshotAwarePartitionDataStorageTest extends 
BaseIgniteAbstractTest {
         doReturn(false).when(snapshot).alreadyPassedOrIrrelevant(eq(TABLE_ID), 
any());
         doReturn(true).when(snapshot).addRowIdToSkip(any());
 
-        writeAction.executeOn(testedStorage, rowId);
+        writeAction.executeOn(testedStorage, rowId, clock);
 
         verify(snapshot).enqueueForSending(TABLE_ID, rowId);
     }
@@ -258,7 +258,7 @@ class SnapshotAwarePartitionDataStorageTest extends 
BaseIgniteAbstractTest {
         doReturn(false).when(snapshot).alreadyPassedOrIrrelevant(eq(TABLE_ID), 
any());
         doReturn(false).when(snapshot).addRowIdToSkip(any());
 
-        writeAction.executeOn(testedStorage, rowId);
+        writeAction.executeOn(testedStorage, rowId, clock);
 
         verify(snapshot, never()).enqueueForSending(eq(TABLE_ID), any());
     }
@@ -270,7 +270,7 @@ class SnapshotAwarePartitionDataStorageTest extends 
BaseIgniteAbstractTest {
 
         doReturn(true).when(snapshot).alreadyPassedOrIrrelevant(eq(TABLE_ID), 
any());
 
-        writeAction.executeOn(testedStorage, rowId);
+        writeAction.executeOn(testedStorage, rowId, clock);
 
         verify(snapshot, never()).enqueueForSending(eq(TABLE_ID), any());
     }
@@ -282,7 +282,7 @@ class SnapshotAwarePartitionDataStorageTest extends 
BaseIgniteAbstractTest {
 
         configureSnapshotToLetEnqueueOutOfOrderMvRow(snapshot);
 
-        writeAction.executeOn(testedStorage, rowId);
+        writeAction.executeOn(testedStorage, rowId, clock);
 
         verify(snapshot).enqueueForSending(TABLE_ID, rowId);
     }
@@ -302,7 +302,7 @@ class SnapshotAwarePartitionDataStorageTest extends 
BaseIgniteAbstractTest {
         configureSnapshotToLetEnqueueOutOfOrderMvRow(snapshot);
         configureSnapshotToLetEnqueueOutOfOrderMvRow(snapshot2);
 
-        writeAction.executeOn(testedStorage, rowId);
+        writeAction.executeOn(testedStorage, rowId, clock);
 
         verify(snapshot).enqueueForSending(TABLE_ID, rowId);
         verify(snapshot2).enqueueForSending(TABLE_ID, rowId);
@@ -318,23 +318,25 @@ class SnapshotAwarePartitionDataStorageTest extends 
BaseIgniteAbstractTest {
     private enum MvWriteAction {
         ADD_WRITE {
             @Override
-            void executeOn(SnapshotAwarePartitionDataStorage storage, RowId 
rowId) {
+            void executeOn(SnapshotAwarePartitionDataStorage storage, RowId 
rowId, HybridClock clock) {
                 storage.addWrite(rowId, mock(BinaryRow.class), 
UUID.randomUUID(), 999, 42);
             }
         },
+
         ABORT_WRITE {
             @Override
-            void executeOn(SnapshotAwarePartitionDataStorage storage, RowId 
rowId) {
+            void executeOn(SnapshotAwarePartitionDataStorage storage, RowId 
rowId, HybridClock clock) {
                 storage.abortWrite(rowId, UUID.randomUUID());
             }
         },
+
         COMMIT_WRITE {
             @Override
-            void executeOn(SnapshotAwarePartitionDataStorage storage, RowId 
rowId) {
-                storage.commitWrite(rowId, new HybridClockImpl().now(), 
UUID.randomUUID());
+            void executeOn(SnapshotAwarePartitionDataStorage storage, RowId 
rowId, HybridClock clock) {
+                storage.commitWrite(rowId, clock.now(), UUID.randomUUID());
             }
         };
 
-        abstract void executeOn(SnapshotAwarePartitionDataStorage storage, 
RowId rowId);
+        abstract void executeOn(SnapshotAwarePartitionDataStorage storage, 
RowId rowId, HybridClock clock);
     }
 }
diff --git 
a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
 
b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
index 80133f0c505..345d307b291 100644
--- 
a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
+++ 
b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
@@ -194,10 +194,12 @@ public class LeaseNegotiationTest extends 
BaseIgniteAbstractTest {
         when(pdClusterService.messagingService()).thenAnswer(inv -> 
pdMessagingService);
         when(pdClusterService.topologyService()).thenAnswer(inv -> 
pdTopologyService);
 
+        var clockService = new TestClockService(new HybridClockImpl());
+
         LeaseTracker leaseTracker = new LeaseTracker(
                 metaStorageManager,
                 pdClusterService.topologyService(),
-                new TestClockService(new HybridClockImpl())
+                clockService
         );
 
         leaseTracker.startTrack(0L);
@@ -213,7 +215,7 @@ public class LeaseNegotiationTest extends 
BaseIgniteAbstractTest {
                 mock(FailureProcessor.class),
                 pdLogicalTopologyService,
                 leaseTracker,
-                new TestClockService(new HybridClockImpl()),
+                clockService,
                 assignmentsTracker,
                 replicationConfiguration,
                 Runnable::run
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/command/PartitionRaftCommandsSerializationTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/command/PartitionRaftCommandsSerializationTest.java
index 9601883cb39..7c250beb002 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/command/PartitionRaftCommandsSerializationTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/command/PartitionRaftCommandsSerializationTest.java
@@ -70,7 +70,7 @@ public class PartitionRaftCommandsSerializationTest extends 
IgniteAbstractTest {
     private static final int TABLE_ID = 1;
 
     /** Hybrid clock. */
-    private final HybridClockImpl clock = new HybridClockImpl();
+    private final HybridClock clock = new HybridClockImpl();
 
     /** Key-value marshaller for tests. */
     private static KvMarshaller<TestKey, TestValue> kvMarshaller;
@@ -228,8 +228,6 @@ public class PartitionRaftCommandsSerializationTest extends 
IgniteAbstractTest {
 
     @Test
     public void testTxCleanupCommand() {
-        HybridClock clock = new HybridClockImpl();
-
         WriteIntentSwitchCommand cmd = 
PARTITION_REPLICATION_MESSAGES_FACTORY.writeIntentSwitchCommandV2()
                 .txId(UUID.randomUUID())
                 .commit(true)
@@ -247,7 +245,6 @@ public class PartitionRaftCommandsSerializationTest extends 
IgniteAbstractTest {
 
     @Test
     public void testFinishTxCommand() {
-        HybridClock clock = new HybridClockImpl();
         ArrayList<ReplicationGroupIdMessage> grps = new ArrayList<>(10);
 
         for (int i = 0; i < 10; i++) {
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
index 12873a82feb..bbb73fd760b 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
@@ -299,9 +299,8 @@ public class PartitionCommandListenerTest extends 
BaseIgniteAbstractTest {
         LeasePlacementDriver placementDriver = 
mock(LeasePlacementDriver.class);
         lenient().when(placementDriver.getCurrentPrimaryReplica(any(), 
any())).thenReturn(null);
 
-        HybridClock clock = new HybridClockImpl();
         ClockService clockService = mock(ClockService.class);
-        lenient().when(clockService.current()).thenReturn(clock.current());
+        
lenient().when(clockService.current()).thenReturn(hybridClock.current());
 
         commandListener = new PartitionListener(
                 mock(TxManager.class),
@@ -531,9 +530,8 @@ public class PartitionCommandListenerTest extends 
BaseIgniteAbstractTest {
         LeasePlacementDriver placementDriver = 
mock(LeasePlacementDriver.class);
         lenient().when(placementDriver.getCurrentPrimaryReplica(any(), 
any())).thenReturn(null);
 
-        HybridClock clock = new HybridClockImpl();
         ClockService clockService = mock(ClockService.class);
-        lenient().when(clockService.current()).thenReturn(clock.current());
+        
lenient().when(clockService.current()).thenReturn(hybridClock.current());
 
         PartitionListener testCommandListener = new PartitionListener(
                 mock(TxManager.class),

Reply via email to