diff --git a/ibuf/ibuf0ibuf.c b/ibuf/ibuf0ibuf.c index 204c22cb078..cd19ea22bb3 100644 --- a/ibuf/ibuf0ibuf.c +++ b/ibuf/ibuf0ibuf.c @@ -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;