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 6bc603deb6 IGNITE-20355 Fix failing RO tests in TxLocalTest (#2582)
6bc603deb6 is described below
commit 6bc603deb67a1b5fcb02c0954c55859b17d53244
Author: Cyrill <[email protected]>
AuthorDate: Wed Sep 13 17:09:01 2023 +0300
IGNITE-20355 Fix failing RO tests in TxLocalTest (#2582)
---
.../apache/ignite/internal/table/TxLocalTest.java | 49 ++++------------------
.../table/impl/DummyInternalTableImpl.java | 13 +++---
2 files changed, 13 insertions(+), 49 deletions(-)
diff --git
a/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
b/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
index dc67894f76..b5cf8349d8 100644
---
a/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
+++
b/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
@@ -28,7 +28,6 @@ import static org.mockito.Mockito.when;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.replicator.ReplicaService;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
@@ -72,9 +71,10 @@ public class TxLocalTest extends TxAbstractTest {
ReplicaMessagesFactory replicaMessagesFactory = new
ReplicaMessagesFactory();
- HybridClockImpl localClock = new HybridClockImpl();
MessagingService msgSvc = mock(MessagingService.class,
RETURNS_DEEP_STUBS);
- ReplicaService replicaSvc = new ReplicaService(msgSvc, localClock);
+ ReplicaService replicaSvc = new ReplicaService(msgSvc,
DummyInternalTableImpl.CLOCK);
+
+ String localNodeName = DummyInternalTableImpl.LOCAL_NODE.name();
Map<ReplicationGroupId, DummyInternalTableImpl> tables = new
HashMap<>();
doAnswer(invocationOnMock -> {
@@ -85,7 +85,7 @@ public class TxLocalTest extends TxAbstractTest {
TimestampAware aware = (TimestampAware) request;
HybridTimestamp updated =
DummyInternalTableImpl.CLOCK.update(aware.timestamp());
- return replicaListener.invoke(request, "local").handle((res,
err) -> err == null ? replicaMessagesFactory
+ return replicaListener.invoke(request,
localNodeName).handle((res, err) -> err == null ? replicaMessagesFactory
.timestampAwareReplicaResponse()
.result(res)
.timestampLong(updated.longValue())
@@ -96,7 +96,7 @@ public class TxLocalTest extends TxAbstractTest {
.timestampLong(updated.longValue())
.build());
} else {
- return replicaListener.invoke(request, "local").handle((res,
err) -> err == null ? replicaMessagesFactory
+ return replicaListener.invoke(request,
localNodeName).handle((res, err) -> err == null ? replicaMessagesFactory
.replicaResponse()
.result(res)
.build() : replicaMessagesFactory
@@ -116,7 +116,8 @@ public class TxLocalTest extends TxAbstractTest {
tables.get(request.groupId()).txStateStorage().getTxStateStorage(0).get(request.txId()));
}).when(transactionStateResolver).sendMetaRequest(any(), any());
- txManager = new TxManagerImpl(replicaSvc, lockManager, localClock, new
TransactionIdGenerator(0xdeadbeef), () -> "local");
+ txManager = new TxManagerImpl(replicaSvc, lockManager,
DummyInternalTableImpl.CLOCK,
+ new TransactionIdGenerator(0xdeadbeef), () -> localNodeName);
igniteTransactions = new IgniteTransactionsImpl(txManager,
timestampTracker);
@@ -171,40 +172,4 @@ public class TxLocalTest extends TxAbstractTest {
protected boolean assertPartitionsSame(TableImpl table, int partId) {
return true;
}
-
- // TODO: https://issues.apache.org/jira/browse/IGNITE-20355
- @Override
- public void testReadOnlyGet() {
- // No-op
- }
-
- // TODO: https://issues.apache.org/jira/browse/IGNITE-20355
- @Override
- public void testReadOnlyScan() throws Exception {
- // No-op
- }
-
- // TODO: https://issues.apache.org/jira/browse/IGNITE-20355
- @Override
- public void testReadOnlyGetWriteIntentResolutionUpdate() {
- // No-op
- }
-
- // TODO: https://issues.apache.org/jira/browse/IGNITE-20355
- @Override
- public void testReadOnlyGetWriteIntentResolutionRemove() {
- // No-op
- }
-
- // TODO: https://issues.apache.org/jira/browse/IGNITE-20355
- @Override
- public void testReadOnlyGetAll() {
- // No-op
- }
-
- // TODO: https://issues.apache.org/jira/browse/IGNITE-20355
- @Override
- public void testReadOnlyPendingWriteIntentSkippedCombined() {
- super.testReadOnlyPendingWriteIntentSkippedCombined();
- }
}
diff --git
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
index bb49f42910..69476824e4 100644
---
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
+++
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
@@ -34,7 +34,6 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
-import java.util.function.LongSupplier;
import javax.naming.OperationNotSupportedException;
import org.apache.ignite.configuration.ConfigurationValue;
import org.apache.ignite.distributed.TestPartitionDataStorage;
@@ -114,12 +113,12 @@ public class DummyInternalTableImpl extends
InternalTableImpl {
public static final ClusterNode LOCAL_NODE = new ClusterNodeImpl("id",
"node", ADDR);
- public static final HybridClock CLOCK = new TestHybridClock(new
LongSupplier() {
- @Override
- public long getAsLong() {
- return 0;
- }
- });
+ // 2000 was picked to avoid negative time that we get when building read
timestamp
+ // in TxManagerImpl.currentReadTimestamp.
+ // We subtract
(ReplicaManager.IDLE_SAFE_TIME_PROPAGATION_PERIOD_MILLISECONDS +
HybridTimestamp.CLOCK_SKEW) = (1000 + 7) = 1007
+ // from the current time.
+ // Any value greater than that will work, hence 2000.
+ public static final HybridClock CLOCK = new TestHybridClock(() -> 2000);
private static final int PART_ID = 0;