mirror of
https://github.com/MariaDB/server.git
synced 2025-07-18 23:03:28 +03:00
The test innodb.innodb_wl6326 that had been disabled in 10.4 due to
MDEV-21535 is failing on 10.5 due to a different reason: the removal
of the MLOG_COMP_END_COPY_CREATED operations in MDEV-12353
commit 276f996af9
caused PAGE_LAST_INSERT
to be set to something nonzero by the function page_copy_rec_list_end().
This in turn would cause btr_page_get_split_rec_to_right() to behave
differently: we would not attempt to split the page at all, but simply
insert the new record into the new, empty, right leaf page.
Even though the change reduced the sizes of some tables, it is better
to aim for balanced trees.
page_copy_rec_list_end(), PageBulk::finishPage():
Preserve PAGE_LAST_INSERT, PAGE_N_DIRECTION, PAGE_DIRECTION.
PageBulk::finish(): Move some common code from PageBulk::finishPage().
53 lines
1.9 KiB
Plaintext
53 lines
1.9 KiB
Plaintext
SET GLOBAL innodb_buffer_pool_dump_pct=100;
|
|
CREATE TABLE ib_bp_test
|
|
(a INT AUTO_INCREMENT, b VARCHAR(64), c TEXT, PRIMARY KEY (a), KEY (b, c(128)))
|
|
ENGINE=INNODB;
|
|
SELECT PAGE_NUMBER FROM information_schema.innodb_buffer_page_lru
|
|
WHERE table_name = '`test`.`ib_bp_test`';
|
|
PAGE_NUMBER
|
|
3
|
|
4
|
|
SELECT SPACE INTO @space FROM information_schema.innodb_buffer_page_lru
|
|
WHERE table_name = '`test`.`ib_bp_test`' AND PAGE_NUMBER=3;
|
|
INSERT INTO ib_bp_test
|
|
SELECT NULL, REPEAT('b', 64), REPEAT('c', 256) FROM seq_1_to_16382;
|
|
SELECT COUNT(*) FROM information_schema.innodb_buffer_page_lru
|
|
WHERE table_name = '`test`.`ib_bp_test`';
|
|
COUNT(*)
|
|
596
|
|
SET GLOBAL innodb_buffer_pool_dump_now = ON;
|
|
SET GLOBAL innodb_fast_shutdown=0;
|
|
# restart
|
|
SELECT PAGE_NUMBER FROM information_schema.innodb_buffer_page_lru
|
|
WHERE table_name = '`test`.`ib_bp_test`';
|
|
PAGE_NUMBER
|
|
select count(*) from ib_bp_test LIMIT 0;
|
|
count(*)
|
|
SET GLOBAL innodb_buffer_pool_load_now = ON;
|
|
SELECT variable_value
|
|
FROM information_schema.global_status
|
|
WHERE LOWER(variable_name) = 'innodb_buffer_pool_load_status';
|
|
variable_value
|
|
Buffer pool(s) load completed at TIMESTAMP_NOW
|
|
SELECT COUNT(*) FROM information_schema.innodb_buffer_page_lru
|
|
WHERE table_name = '`test`.`ib_bp_test`';
|
|
COUNT(*)
|
|
596
|
|
call mtr.add_suppression("InnoDB: Error parsing");
|
|
SET GLOBAL innodb_buffer_pool_load_now = ON;
|
|
# Re-write some valid pages to the dump file, make sure the space
|
|
# should be valid but all the page no should be out of bound of the file
|
|
# restart
|
|
SET GLOBAL innodb_buffer_pool_load_now = ON;
|
|
SELECT variable_value
|
|
FROM information_schema.global_status
|
|
WHERE LOWER(variable_name) = 'innodb_buffer_pool_load_status';
|
|
variable_value
|
|
Buffer pool(s) load completed at TIMESTAMP_NOW
|
|
DROP TABLE ib_bp_test;
|
|
SET GLOBAL innodb_buffer_pool_dump_pct=default;
|
|
#
|
|
# Bug#21371070 [ERROR] INNODB: CANNOT ALLOCATE 0 BYTES: SUCCESS
|
|
#
|
|
SET GLOBAL innodb_buffer_pool_load_now = ON;
|