mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-24832 Root page AHI removal fails during rollback of bulk insert
This failure is caused by commit 43ca6059ca
(MDEV-24720). InnoDB fails to remove the ahi entries
during rollback of bulk insert operation. InnoDB should
remove the AHI entries of root page before reinitialising it.
Reviewed-by: Marko Mäkelä
This commit is contained in:
@@ -25,5 +25,12 @@ ROLLBACK;
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
#
|
||||
# MDEV-24832 Root page AHI Removal fails fails during
|
||||
# bulk index rollback
|
||||
#
|
||||
BEGIN;
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_500;
|
||||
ROLLBACK;
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL innodb_adaptive_hash_index = @save_ahi;
|
||||
|
@@ -24,5 +24,12 @@ BEGIN;
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_65536;
|
||||
ROLLBACK;
|
||||
CHECK TABLE t1;
|
||||
--echo #
|
||||
--echo # MDEV-24832 Root page AHI Removal fails fails during
|
||||
--echo # bulk index rollback
|
||||
--echo #
|
||||
BEGIN;
|
||||
INSERT INTO t1 SELECT * FROM seq_1_to_500;
|
||||
ROLLBACK;
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL innodb_adaptive_hash_index = @save_ahi;
|
||||
|
@@ -1209,16 +1209,16 @@ void dict_index_t::clear(que_thr_t *thr)
|
||||
#endif
|
||||
);
|
||||
|
||||
mtr.memset(root_block, PAGE_HEADER + PAGE_BTR_SEG_LEAF,
|
||||
FSEG_HEADER_SIZE, 0);
|
||||
if (fseg_create(table->space, PAGE_HEADER + PAGE_BTR_SEG_LEAF, &mtr, false,
|
||||
root_block))
|
||||
btr_root_page_init(root_block, id, this, &mtr);
|
||||
#ifdef BTR_CUR_HASH_ADAPT
|
||||
if (root_block->index)
|
||||
btr_search_drop_page_hash_index(root_block);
|
||||
ut_ad(n_ahi_pages() == 0);
|
||||
#endif
|
||||
mtr.memset(root_block, PAGE_HEADER + PAGE_BTR_SEG_LEAF,
|
||||
FSEG_HEADER_SIZE, 0);
|
||||
if (fseg_create(table->space, PAGE_HEADER + PAGE_BTR_SEG_LEAF, &mtr, false,
|
||||
root_block))
|
||||
btr_root_page_init(root_block, id, this, &mtr);
|
||||
}
|
||||
|
||||
mtr.commit();
|
||||
|
Reference in New Issue
Block a user