Skip to content

Commit

Permalink
MDEV-29115 mariabackup.mdev-14447 started failing in a new way
Browse files Browse the repository at this point in the history
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 4179f93 (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.
  • Loading branch information
dr-m committed Aug 4, 2022
1 parent c1ea55d commit 558f1ef
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
2 changes: 2 additions & 0 deletions mysql-test/suite/mariabackup/mdev-14447.result
@@ -1,6 +1,8 @@
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;
Expand Down
2 changes: 2 additions & 0 deletions mysql-test/suite/mariabackup/mdev-14447.test
Expand Up @@ -6,13 +6,15 @@ 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;
--disable_result_log
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;
Expand Down
10 changes: 7 additions & 3 deletions storage/innobase/mtr/mtr0mtr.cc
Expand Up @@ -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

Expand Down

0 comments on commit 558f1ef

Please sign in to comment.