mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
75b7cd680b
A few regression tests invoke heavy flushing of the buffer pool and may trigger warnings that tablespaces could not be deleted because of pending writes. Those warnings are to be expected during the execution of such tests. The warnings are also frequently seen with Valgrind or MemorySanitizer. For those, the global suppression in have_innodb.inc does the trick.
65 lines
2.1 KiB
Text
65 lines
2.1 KiB
Text
--source include/have_innodb.inc
|
|
--source include/innodb_page_size.inc
|
|
--source include/have_undo_tablespaces.inc
|
|
--source include/not_embedded.inc
|
|
--source include/have_sequence.inc
|
|
|
|
--disable_query_log
|
|
call mtr.add_suppression("InnoDB: Difficult to find free blocks in the buffer pool");
|
|
--disable_query_log
|
|
# This may be triggered on a slow system.
|
|
call mtr.add_suppression("InnoDB: Trying to delete tablespace.*pending operations");
|
|
--enable_query_log
|
|
|
|
SET GLOBAL innodb_undo_log_truncate = 0;
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
|
|
|
#-----------------------------------------------------------------------------
|
|
#
|
|
# Perform DML action using multiple clients and multiple undo tablespace.
|
|
#
|
|
#
|
|
create table t1(keyc int primary key, c char(100)) engine = innodb;
|
|
create table t2(keyc int primary key, c char(100)) engine = innodb;
|
|
#
|
|
let DATADIR = `select @@datadir`;
|
|
connect (con1,localhost,root,,);
|
|
begin;
|
|
send insert into t1 select seq,'a' from seq_1_to_20000;
|
|
|
|
connect (con2,localhost,root,,);
|
|
begin;
|
|
send insert into t2 select seq,'a' from seq_1_to_20000;
|
|
|
|
connection con1; reap; send update t1 set c = 'mysql';
|
|
connection con2; reap; send update t2 set c = 'mysql';
|
|
connection con1; reap; send update t1 set c = 'oracle';
|
|
connection con2; reap; send update t2 set c = 'oracle';
|
|
connection con1; reap; send delete from t1;
|
|
connection con2; reap; delete from t2;
|
|
connection con1; reap;
|
|
|
|
SET GLOBAL innodb_undo_log_truncate = 1;
|
|
commit; disconnect con1;
|
|
connection con2; commit; disconnect con2;
|
|
|
|
connection default;
|
|
|
|
--replace_regex /.*Trx id counter ([0-9]+).*/\1/
|
|
let $trx_before= `SHOW ENGINE INNODB STATUS`;
|
|
let $trx_before= `select substr('$trx_before',9)+2`;
|
|
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
|
|
SET GLOBAL innodb_max_purge_lag_wait=0;
|
|
set global innodb_fast_shutdown=0;
|
|
--source include/restart_mysqld.inc
|
|
--replace_regex /.*Trx id counter ([0-9]+).*/\1/
|
|
let $trx_after= `SHOW ENGINE INNODB STATUS`;
|
|
let $trx_after= `select substr('$trx_after',9)`;
|
|
|
|
drop table t1, t2;
|
|
|
|
if ($trx_before > $trx_after)
|
|
{
|
|
echo Transaction sequence mismatch: $trx_before > $trx_after;
|
|
}
|