MDEV-30802 Assertion `index->is_btree() || index->is_ibuf()' failed in btr_search_guess_on_hash
Problem: ======= - There is a race condition between purge and rollback of alter operation. Alter rollback marks the index as corrupted. At the same time, purge is working on the same index and leads to assert failure. This is caused by commit 7c0b9c60 (MDEV-15250). Solution: ======= - After MDEV-15250, InnoDB logs the operation only at the end of transaction commit and applies the log in ha_innobase::commit_inplace_alter_table() and also via dml thread. So there is no need for purge to work on uncommitted index. The assertion would fail in the test innodb.innodb-index-online when the following call is added to the start of the function row_purge_remove_sec_if_poss_leaf(): if (!index->is_committed()) sleep(5);
Showing
Please register or sign in to comment