mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-34256 InnoDB throws out of bound write due to temporary
tablespace truncation
- InnoDB fails with out of bound write error after temporary
tablespace truncation. This issue caused by
commit c507678b20
(MDEV-28699).
InnoDB fail to clear freed ranges if shrinking size
is the last offset of the freed range.
This commit is contained in:
25
mysql-test/suite/innodb/t/temp_truncate_freed.test
Normal file
25
mysql-test/suite/innodb/t/temp_truncate_freed.test
Normal file
@ -0,0 +1,25 @@
|
||||
--source include/have_innodb.inc
|
||||
|
||||
set @old_innodb_buffer_pool_size = @@innodb_buffer_pool_size;
|
||||
set @old_immediate_scrub_data_val= @@innodb_immediate_scrub_data_uncompressed;
|
||||
|
||||
SET GLOBAL innodb_immediate_scrub_data_uncompressed=1;
|
||||
SET GLOBAL innodb_buffer_pool_size= 16777216;
|
||||
|
||||
CREATE TEMPORARY TABLE t1(c1 MEDIUMTEXT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (repeat(1,16777215));
|
||||
DROP TEMPORARY TABLE t1;
|
||||
SET GLOBAL innodb_truncate_temporary_tablespace_now=1;
|
||||
|
||||
let $wait_timeout = 180;
|
||||
let $wait_condition =
|
||||
SELECT SUBSTR(variable_value, 1, 30) = 'Completed resizing buffer pool'
|
||||
FROM information_schema.global_status
|
||||
WHERE LOWER(variable_name) = 'innodb_buffer_pool_resize_status';
|
||||
|
||||
SET GLOBAL innodb_buffer_pool_size=10485760;
|
||||
--source include/wait_condition.inc
|
||||
|
||||
set global innodb_buffer_pool_size = @old_innodb_buffer_pool_size;
|
||||
set global innodb_immediate_scrub_data_uncompressed = @old_immediate_scrub_data_val;
|
||||
--source include/wait_condition.inc
|
Reference in New Issue
Block a user