[ https://issues.apache.org/jira/browse/IGNITE-12496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17006475#comment-17006475 ]
Maxim Muzafarov commented on IGNITE-12496: ------------------------------------------ [~Denis Chudov] Should we merge this issue to 2.8 release branch also? > 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 > Time Spent: 10m > Remaining Estimate: 0h > > 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)