[
https://issues.apache.org/jira/browse/IGNITE-14447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312430#comment-17312430
]
Ignite TC Bot commented on IGNITE-14447:
----------------------------------------
{panel:title=Branch: [pull/8949/head] Base: [master] : No blockers
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/8949/head] Base: [master] : New Tests
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Cache 7{color} [[tests
1|https://ci.ignite.apache.org/viewLog.html?buildId=5942752]]
* {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite:
CleanupIndexTreeCheckpointFailoverTest.testCorruptedTree - PASSED{color}
{panel}
[TeamCity *--> Run :: All*
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5942792&buildTypeId=IgniteTests24Java8_RunAll]
> Invalid meta page can be used after index re-creation
> -----------------------------------------------------
>
> Key: IGNITE-14447
> URL: https://issues.apache.org/jira/browse/IGNITE-14447
> Project: Ignite
> Issue Type: Bug
> Reporter: Ivan Bessonov
> Assignee: Ivan Bessonov
> Priority: Major
> Fix For: 2.11
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Consider the following scenario:
> * A user creates index "A"
> * Ignite allocates page 0x1234 as the index meta page and writes it to the
> index roots tree
> * Index is populated, query entity is written on disk
> * Checkpoint is triggered and the index pages (including root) are written
> to disk
> * User drops the index
> * The tree is deallocated, the meta page is removed from the roots tree,
> query entity without the index is written to disk. No logical record is
> written for the roots tree.
> * Node crashes without checkpoint being marked
> * Node restarts. Since the query entity does not contain the index "A", the
> index tree is not created
> * User deletes some entries, then attempts to create the index "A" again
> * Since the node did not trigger checkpoint before the crash and no logical
> record was written, the root tree contains obsolete tree with links pointing
> to non-existing data (namely, index "A" still refers to page 0x1234)
> * Depending on allocation pattern and enabled assertions flag, the node will
> either fail with an assertion, or will crash the JVM
> Fundamentally, the issue is caused by inconsistency between index roots tree
> and query entity. Ideally, we should move cache configuration to page memory
> subsystem, but this may be a big change.
> We should check whether writing a logical record on index drop that will run
> the index cleanup on recovery mitigates the issue (in other words, the index
> cleanup persistent task should be triggered even if no checkpoint was marked
> after query entity is persisted).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)