mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
ibuf_merge_or_delete_for_page(): Fix inappropriate latching of pages
when merging a purge (IBUF_OP_DELETE). This bug was introduced in r6772.
This commit is contained in:
parent
b1143bcda9
commit
6429bcd555
1 changed files with 15 additions and 0 deletions
|
@ -4392,11 +4392,26 @@ loop:
|
|||
btr_pcur_store_position(&pcur, &mtr);
|
||||
btr_pcur_commit_specify_mtr(&pcur, &mtr);
|
||||
|
||||
mtr_start(&mtr);
|
||||
|
||||
if (block) {
|
||||
ibool success;
|
||||
success = buf_page_get_known_nowait(
|
||||
RW_X_LATCH, block,
|
||||
BUF_KEEP_OLD,
|
||||
__FILE__, __LINE__, &mtr);
|
||||
ut_a(success);
|
||||
|
||||
buf_block_dbg_add_level(
|
||||
block, SYNC_TREE_NODE);
|
||||
}
|
||||
|
||||
if (!ibuf_restore_pos(space, page_no,
|
||||
search_tuple,
|
||||
BTR_MODIFY_LEAF,
|
||||
&pcur, &mtr)) {
|
||||
|
||||
mtr_commit(&mtr);
|
||||
mops[op]++;
|
||||
ibuf_dummy_index_free(dummy_index);
|
||||
goto loop;
|
||||
|
|
Loading…
Reference in a new issue