mirror of
https://github.com/MariaDB/server.git
synced 2025-04-20 14:15:30 +02:00

The test in commit 1756b0f37d
is occasionally failing if there are unexpectedly many page cleaner
batches that are updating the log checkpoint by small amounts.
This occurs in particular when running the server under Valgrind.
Let us insert the same number of records with a larger number of
statements in a hope that the test would then be more likely to pass.
53 lines
1.5 KiB
Text
53 lines
1.5 KiB
Text
--source include/have_innodb.inc
|
|
--source include/have_sequence.inc
|
|
|
|
SET @save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
|
|
SET @save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
|
|
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
|
|
|
|
CREATE TABLE t(a INT) ENGINE=InnoDB STATS_PERSISTENT=0;
|
|
--connect (prevent_purge,localhost,root)
|
|
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
--connection default
|
|
SET GLOBAL innodb_max_purge_lag_wait=0;
|
|
|
|
let $wait_condition =
|
|
SELECT variable_value = 0
|
|
FROM information_schema.global_status
|
|
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
|
|
--source include/wait_condition.inc
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct=90.0;
|
|
|
|
--disable_cursor_protocol
|
|
SELECT variable_value INTO @log_writes FROM information_schema.global_status
|
|
WHERE variable_name='innodb_log_writes';
|
|
--enable_cursor_protocol
|
|
|
|
BEGIN;
|
|
--disable_query_log
|
|
let $N=500;
|
|
while ($N) {
|
|
INSERT INTO t SELECT * FROM seq_1_to_10;
|
|
dec $N;
|
|
}
|
|
--enable_query_log
|
|
ROLLBACK;
|
|
|
|
SELECT if(variable_value-@log_writes<500,'ok',variable_value-@log_writes)
|
|
FROM information_schema.global_status WHERE variable_name='innodb_log_writes';
|
|
--disconnect prevent_purge
|
|
|
|
SELECT variable_value>0 FROM information_schema.global_status
|
|
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
|
|
|
|
# Without the MDEV-24917 fix, we would time out here.
|
|
--source include/wait_condition.inc
|
|
DROP TABLE t;
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct = @save_pct;
|
|
SET GLOBAL innodb_max_dirty_pages_pct_lwm = @save_pct_lwm;
|