Browse Source
MDEV-11831 Make InnoDB mini-transaction memo checks stricter
MDEV-11831 Make InnoDB mini-transaction memo checks stricter
InnoDB keeps track of buffer-fixed buf_block_t or acquired rw_lock_t within a mini-transaction. There are some memo_contains assertions in the code that document when certain blocks or rw_locks must be held. But, these assertions only check the mini-transaction memo, not the fact whether the rw_lock_t are actually being held by the caller. btr_pcur_store_position(): Remove #ifdef, and assert that the block is always buffer-fixed. rtr_pcur_getnext_from_path(), rtr_pcur_open_low(), ibuf_rec_get_page_no_func(), ibuf_rec_get_space_func(), ibuf_rec_get_info_func(), ibuf_rec_get_op_type_func(), ibuf_build_entry_from_ibuf_rec_func(), ibuf_rec_get_volume_func(), ibuf_get_merge_page_nos_func(), ibuf_get_volume_buffered_count_func() ibuf_get_entry_counter_low_func(), page_set_ssn_id(), row_vers_old_has_index_entry(), row_vers_build_for_consistent_read(), row_vers_build_for_semi_consistent_read(), trx_undo_prev_version_build(): Make use of mtr_memo_contains_page_flagged(). mtr_t::memo_contains(): Take a const memo. Assert rw_lock_own(). FindPage, FlaggedCheck: Assert rw_lock_own_flagged().pull/258/merge
9 changed files with 136 additions and 80 deletions
-
21storage/innobase/btr/btr0pcur.cc
-
18storage/innobase/gis/gis0sea.cc
-
39storage/innobase/ibuf/ibuf0ibuf.cc
-
4storage/innobase/include/mtr0mtr.h
-
13storage/innobase/include/mtr0types.h
-
7storage/innobase/include/page0page.ic
-
76storage/innobase/mtr/mtr0mtr.cc
-
13storage/innobase/row/row0vers.cc
-
7storage/innobase/trx/trx0rec.cc
Write
Preview
Loading…
Cancel
Save
Reference in new issue