[
https://issues.apache.org/jira/browse/IGNITE-12496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denis Chudov updated IGNITE-12496:
----------------------------------
Ignite Flags: Release Notes Required (was: Docs Required,Release Notes
Required)
> Index deletion blocks checkpoint for all of its duration, which can cause
> "Critical system error: system critical thread blocked"
> ---------------------------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-12496
> URL: https://issues.apache.org/jira/browse/IGNITE-12496
> Project: Ignite
> Issue Type: Bug
> Reporter: Denis Chudov
> Assignee: Denis Chudov
> Priority: Major
>
> GridH2Table#removeIndex(Session, Index) acquires checkpoint read lock and
> releases it only after full completion of deletion process. It happens
> because H2TreeIndex#destroy requires to be run when checkpoint lock is held.
> Meanwhile, checkpoint thread stops on Checkpointer#markCheckpointBegin,
> trying to acquire write lock, and stays locked for all the time of index
> deletion.
> The possible fix is that checkpoint read lock is periodically released while
> index deletion is in progress. To avoid persistence corruption in case of
> node crush in the middle of the process, we should put index root into some
> persistent structure like index meta tree and remember it as "pending
> delete". Then we must delete tree pages from leafs to root, this allows to
> avoid links to deleted pages. When deletion is complete, tree root can be
> removed from "pending delete".
--
This message was sent by Atlassian Jira
(v8.3.4#803005)