mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-23855 follow-up: Make innodb.doublewrite more stable
The test innodb.doublewrite could occasionally fail with 64KiB page size because the page 0 would no longer be in the doublewrite buffer. Let us stop purge before the server is killed, and ensure that the entire buffer pool will be flushed before we initiate an extra write of page 0.
This commit is contained in:
@@ -34,6 +34,10 @@ show variables like 'innodb_doublewrite';
|
||||
show variables like 'innodb_fil_make_page_dirty_debug';
|
||||
show variables like 'innodb_saved_page_number_debug';
|
||||
|
||||
connect (stop_purge,localhost,root,,);
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
connection default;
|
||||
|
||||
create table t1 (f1 int primary key, f2 blob) engine=innodb;
|
||||
|
||||
start transaction;
|
||||
@@ -51,12 +55,10 @@ commit work;
|
||||
select space from information_schema.innodb_sys_tables
|
||||
where name = 'test/t1' into @space_id;
|
||||
|
||||
--echo # Ensure that dirty pages of table t1 is flushed.
|
||||
flush tables t1 for export;
|
||||
unlock tables;
|
||||
|
||||
begin;
|
||||
insert into t1 values (6, repeat('%', 12));
|
||||
--echo # Ensure that dirty pages of table t1 are flushed.
|
||||
set global innodb_buf_flush_list_now = 1;
|
||||
|
||||
--source ../include/no_checkpoint_start.inc
|
||||
|
||||
@@ -69,6 +71,7 @@ set global innodb_buf_flush_list_now = 1;
|
||||
|
||||
--let CLEANUP_IF_CHECKPOINT=drop table t1;
|
||||
--source ../include/no_checkpoint_end.inc
|
||||
disconnect stop_purge;
|
||||
|
||||
--echo # Make the first page (page_no=0) of the user tablespace
|
||||
--echo # full of zeroes.
|
||||
|
||||
Reference in New Issue
Block a user