Commit 558f1eff authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-29115 mariabackup.mdev-14447 started failing in a new way

The test mariabackup.mdev-14447 is inserting relatively much
data while concurrently backing up the data. The test often fails
on CI systems, possibly due to an inherent race condition between
the producer (server) and consumer (backup) that would be solved
if the backup was being produced by the server (MDEV-14992).

The written data volume was increased somewhat by
commit 4179f93d (MDEV-18976).
Let us trim the log volume by not writing PAGE_CHECKSUM records
or row-level undo log records, and make the test cover what was
intended to cover by creating the table in the system tablespace.
parent c1ea55dd
call mtr.add_suppression("InnoDB: New log files created");
SET GLOBAL innodb_file_per_table=0;
CREATE TABLE t(a varchar(40) PRIMARY KEY, b varchar(40), c varchar(40), d varchar(40), index(b,c,d)) ENGINE INNODB;
# Create full backup , modify table, then create incremental/differential backup
SET debug_dbug='+d,skip_page_checksum',foreign_key_checks=0,unique_checks=0;
BEGIN;
INSERT INTO t select uuid(), uuid(), uuid(), uuid() from seq_1_to_100000;
COMMIT;
......
......@@ -6,6 +6,7 @@ call mtr.add_suppression("InnoDB: New log files created");
let $basedir=$MYSQLTEST_VARDIR/tmp/backup;
let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1;
SET GLOBAL innodb_file_per_table=0;
CREATE TABLE t(a varchar(40) PRIMARY KEY, b varchar(40), c varchar(40), d varchar(40), index(b,c,d)) ENGINE INNODB;
echo # Create full backup , modify table, then create incremental/differential backup;
......@@ -13,6 +14,7 @@ echo # Create full backup , modify table, then create incremental/differential b
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$basedir;
--enable_result_log
SET debug_dbug='+d,skip_page_checksum',foreign_key_checks=0,unique_checks=0;
BEGIN;
INSERT INTO t select uuid(), uuid(), uuid(), uuid() from seq_1_to_100000;
COMMIT;
......
......@@ -1129,10 +1129,14 @@ std::pair<lsn_t,mtr_t::page_flush_ahead> mtr_t::do_write()
ulint len = m_log.size();
ut_ad(len > 0);
#ifdef UNIV_DEBUG
#ifndef DBUG_OFF
if (m_log_mode == MTR_LOG_ALL) {
m_memo.for_each_block(CIterate<WriteOPT_PAGE_CHECKSUM>(*this));
len = m_log.size();
do {
DBUG_EXECUTE_IF("skip_page_checksum", continue;);
m_memo.for_each_block(CIterate<WriteOPT_PAGE_CHECKSUM>
(*this));
len = m_log.size();
} while (0);
}
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment