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)