diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-06-08 14:53:24 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-06-08 14:53:24 +0300 |
commit | 77b3959b5c1528f33ada7aa4445cccf5b5e197b0 (patch) | |
tree | b69c132a2bda0aba7bd96edaf107ab87a21d1c2b /storage/example | |
parent | 892c426371b4be558d32fdeba7d1d56f46b40f2b (diff) | |
download | mariadb-git-77b3959b5c1528f33ada7aa4445cccf5b5e197b0.tar.gz |
MDEV-28457 Crash in page_dir_find_owner_slot()
A prominent remaining source of crashes on corrupted index pages
is page directory corruption.
A frequent caller of page_dir_find_owner_slot() is page_rec_get_prev().
Some of those calls can be replaced with simpler logic that is less
prone to fail.
page_dir_find_owner_slot(),
page_rec_get_prev(), page_rec_get_prev_const(),
btr_pcur_move_to_prev(), btr_pcur_move_to_prev_on_page(),
btr_cur_upd_rec_sys(),
page_delete_rec_list_end(),
rtr_page_copy_rec_list_end_no_locks(),
rtr_page_copy_rec_list_start_no_locks(): Return an error code on failure.
fil_space_t::io(), buf_page_get_low(): Use DB_CORRUPTION for
out-of-bounds page reads.
PageBulk::getSplitRec(), PageBulk::copyOut(): Simplify the code.
btr_validate_level(): Prevent some more CHECK TABLE crashes on
corrupted pages.
btr_block_get(), btr_pcur_move_to_next_page(): Implement some checks that
were previously only part of IndexPurge::next().
IndexPurge::next(): Use btr_pcur_move_to_next_page().
Diffstat (limited to 'storage/example')
0 files changed, 0 insertions, 0 deletions