mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 11:31:51 +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_store_position(&pcur, &mtr);
|
||||||
btr_pcur_commit_specify_mtr(&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,
|
if (!ibuf_restore_pos(space, page_no,
|
||||||
search_tuple,
|
search_tuple,
|
||||||
BTR_MODIFY_LEAF,
|
BTR_MODIFY_LEAF,
|
||||||
&pcur, &mtr)) {
|
&pcur, &mtr)) {
|
||||||
|
|
||||||
|
mtr_commit(&mtr);
|
||||||
mops[op]++;
|
mops[op]++;
|
||||||
ibuf_dummy_index_free(dummy_index);
|
ibuf_dummy_index_free(dummy_index);
|
||||||
goto loop;
|
goto loop;
|
||||||
|
|
Loading…
Add table
Reference in a new issue