You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Egor Kuts (Jira)" <ji...@apache.org> on 2025/10/07 07:23:00 UTC
[jira] [Commented] (IGNITE-26411) Revise existing storage tests (StorageCleanupTest, IndexGcTest)
[ https://issues.apache.org/jira/browse/IGNITE-26411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18027994#comment-18027994 ]
Egor Kuts commented on IGNITE-26411:
------------------------------------
https://github.com/apache/ignite-3/pull/6711
> Revise existing storage tests (StorageCleanupTest, IndexGcTest)
> ---------------------------------------------------------------
>
> Key: IGNITE-26411
> URL: https://issues.apache.org/jira/browse/IGNITE-26411
> Project: Ignite
> Issue Type: Improvement
> Components: transactions ai3
> Reporter: Pavel Pereslegin
> Assignee: Egor Kuts
> Priority: Major
> Labels: ignite-3
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Looks like some tests are not using the following StorageUpdateHandler methods correctly:
> * handleUpdate(...)
> * handleUpdateAll(...)
> This means that the following parameter set invariant is violated:
> {code:java}
> assert trackWriteIntent || commitTs != null
> {code}
> When writing data to storage, two main situations are possible.
> # The transaction is complete - the transaction is committed (in this case, commitTs != null)
> # The transaction is not complete - changes are accumulated (in this case, trackWriteIntent=true)
> However, the following tests pass commitTs=null along with trackWriteIntent=false
> * StorageCleanupTest.testCleanupBeforeUpdateNoData
> * StorageCleanupTest.testCleanupAndUpdateRowBatch
> * StorageCleanupTest.testCleanupAndUpdateRow
> * IndexGcTest.testRemoveTombstonesRowRowNull
> * IndexGcTest.testRemoveStaleEntriesWithDifferentIndexes
> * IndexGcTest.testRemoveTombstonesRowNullRow
> * IndexGcTest.testRemoveTombstonesRowNullNull
> * IndexGcTest.testRemoveStaleEntryWithSameIndex
> This is inconvenient and can lead to errors in the future, since it requires adding special checks in production code (IGNITE-26067) for the scenarios that are not possible in production.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)