You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by tk...@apache.org on 2025/11/17 05:22:27 UTC

(ignite-3) branch ignite-27051 created (now 2d5bb304788)

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

tkalkirill pushed a change to branch ignite-27051
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


      at 2d5bb304788 IGNITE-27051 wip

This branch includes the following new commits:

     new 2d5bb304788 IGNITE-27051 wip

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(ignite-3) 01/01: IGNITE-27051 wip

Posted by tk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tkalkirill pushed a commit to branch ignite-27051
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 2d5bb30478815ebbb98669b77ad154623497582f
Author: Kirill Tkalenko <tk...@yandex.ru>
AuthorDate: Mon Nov 17 08:22:09 2025 +0300

    IGNITE-27051 wip
---
 .../internal/table/distributed/StorageUpdateHandler.java       | 10 ++++++++--
 .../ignite/internal/table/distributed/StorageCleanupTest.java  |  9 +++++++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandler.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandler.java
index 8868d7b1adc..4d642545e31 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandler.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandler.java
@@ -47,6 +47,8 @@ import org.apache.ignite.internal.storage.TxIdMismatchException;
 import org.apache.ignite.internal.table.distributed.index.IndexUpdateHandler;
 import org.apache.ignite.internal.table.distributed.replicator.PendingRows;
 import org.apache.ignite.internal.util.Cursor;
+import org.apache.ignite.lang.ErrorGroups.Common;
+import org.apache.ignite.lang.IgniteException;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.annotations.TestOnly;
 
@@ -529,8 +531,12 @@ public class StorageUpdateHandler {
             return;
         }
 
-        assert lastCommitTs.compareTo(latestCommittedTs) >= 0 :
-                "Primary commit timestamp " + lastCommitTs + " is earlier than local commit timestamp " + latestCommittedTs;
+        if (lastCommitTs.compareTo(latestCommittedTs) < 0) {
+            throw new IgniteException(
+                    Common.INTERNAL_ERR,
+                    String.format("Primary commit timestamp %s is earlier than local commit timestamp %s", lastCommitTs, latestCommittedTs)
+            );
+        }
 
         if (lastCommitTs.compareTo(latestCommittedTs) > 0) {
             // We see that lastCommitTs is later than the timestamp of the committed value => we need to commit the write intent.
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
index 63c960b2651..bb1c6f6b856 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
@@ -63,7 +63,9 @@ import org.apache.ignite.internal.storage.index.impl.TestSortedIndexStorage;
 import org.apache.ignite.internal.table.TableTestUtils;
 import org.apache.ignite.internal.table.distributed.index.IndexUpdateHandler;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
+import org.apache.ignite.internal.testframework.IgniteTestUtils;
 import org.apache.ignite.internal.type.NativeTypes;
+import org.apache.ignite.lang.IgniteException;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -964,8 +966,11 @@ public class StorageCleanupTest extends BaseMvStoragesTest {
         HybridTimestamp lastCommitTs = commitTs.subtractPhysicalTime(100);
 
         // Last commit time is before the time of the previously committed value => this should not happen.
-        assertThrows(AssertionError.class, () ->
-                storageUpdateHandler.handleUpdate(runningTx, rowId, partitionId, row3, true, null, null, lastCommitTs, null));
+        IgniteTestUtils.assertThrows(
+                IgniteException.class,
+                () -> storageUpdateHandler.handleUpdate(runningTx, rowId, partitionId, row3, true, null, null, lastCommitTs, null),
+                String.format("Primary commit timestamp %s is earlier than local commit timestamp", lastCommitTs)
+        );
 
         assertTrue(storage.read(new RowId(PARTITION_ID, rowId), HybridTimestamp.MAX_VALUE).isWriteIntent());