mariadb/storage/innobase/btr
Marko Mäkelä 9fac857f26 MDEV-34283 A misplaced btr_cur_need_opposite_intention() check may fail to prevent hangs
btr_cur_t::search_leaf(): Invoke btr_cur_need_opposite_intention() after
positioning page_cur.rec so that the record will be in the intended page.
This is something that was broken in
commit f2096478d5 or
commit de4030e4d4 or related changes.

btr_cur_need_opposite_intention(): Add a debug assertion that would
catch the misuse.

The "next line of defence" that should have caught this bug in debug builds
are assertions that mtr_t::m_memo contains MTR_MEMO_X_LOCK for the
dict_index_t::lock. When btr_cur_need_opposite_intention() holds,
we should escalate to acquiring an exclusive index->lock in
btr_cur_t::pessimistic_search_leaf().

Reviewed by: Debarun Banerjee
2024-06-06 13:03:34 +03:00
..
btr0btr.cc MDEV-33325 Crash in flst_read_addr on corrupted data 2024-04-11 09:58:53 +03:00
btr0bulk.cc MDEV-33588 buf::Block_hint is a performance hog 2024-04-09 12:48:01 +03:00
btr0cur.cc MDEV-34283 A misplaced btr_cur_need_opposite_intention() check may fail to prevent hangs 2024-06-06 13:03:34 +03:00
btr0defragment.cc MDEV-30400 Assertion height == btr_page_get_level(...) on INSERT 2023-01-24 14:09:21 +02:00
btr0pcur.cc MDEV-32489 Change buffer index fails to delete the records 2024-04-18 08:30:21 +05:30
btr0sea.cc MDEV-32068 Some calls to buf_read_ahead_linear() seem to be useless 2023-12-05 12:31:29 +02:00