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),