Skip to content
Permalink
Browse files
MDEV-30524 btr_cur_t::open_leaf() opens non-leaf page in BTR_MODIFY_L…
…EAF mode

btr_cur_t::open_leaf(): When we have to reopen the root page in
a different mode, ensure that we will actually acquire a latch upfront,
instead of using RW_NO_LATCH. This prevents a race condition where
the index tree would be split between the time we released the
root page S latch and finally acquired a latch in
mtr->upgrade_buffer_fix(), actually on a non-leaf root page.

This race condition was introduced in
commit 89ec4b5 (MDEV-29603).
  • Loading branch information
dr-m committed Jan 31, 2023
1 parent c3a5cf2 commit ccafd2d
Showing 1 changed file with 1 addition and 0 deletions.
@@ -1890,6 +1890,7 @@ dberr_t btr_cur_t::open_leaf(bool first, dict_index_t *index,
ut_ad(root_leaf_rw_latch != RW_NO_LATCH);
upper_rw_latch= root_leaf_rw_latch;
mtr->rollback_to_savepoint(savepoint);
height= ULINT_UNDEFINED;
continue;
}
else

0 comments on commit ccafd2d

Please sign in to comment.