--source include/have_innodb.inc --source include/have_debug.inc # The test demonstrates that intermediate tables (ALTER TABLE...ALGORITHM=COPY) # are not always properly locked, e.g., can be dropped after # BACKUP STAGE BLOCK_COMMIT # succeeded. # Thus mariabackup decides not to have them in backup at all, # since they keep changing even after the backup LSN was determined. echo # xtrabackup backup; let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; CREATE TABLE t1(i int) ENGINE=InnoDB; INSERT into t1 values(1); connect con2, localhost, root,,; connection con2; set lock_wait_timeout=1; SET debug_sync='copy_data_between_tables_before_reset_backup_lock SIGNAL go WAIT_FOR after_backup_stage_block_commit'; SET debug_sync='alter_table_after_temp_table_drop SIGNAL temp_table_dropped'; DELIMITER |; send SET debug_sync='now WAIT_FOR after_backup_stage_start';ALTER TABLE test.t1 FORCE, algorithm=COPY;| DELIMITER ;| connection default; # setup mariabackup events let after_backup_stage_start=SET debug_sync='now SIGNAL after_backup_stage_start WAIT_FOR go'; let after_backup_stage_block_commit=SET debug_sync='now SIGNAL after_backup_stage_block_commit'; let backup_fix_ddl=SET debug_sync='now WAIT_FOR temp_table_dropped'; --disable_result_log exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --dbug=+d,mariabackup_events; --enable_result_log connection con2; --error ER_LOCK_WAIT_TIMEOUT reap; SET debug_sync='RESET'; disconnect con2; connection default; echo # xtrabackup prepare; --disable_result_log exec $XTRABACKUP --prepare --target-dir=$targetdir; -- source include/restart_and_restore.inc --enable_result_log SELECT * FROM t1; DROP TABLE t1; rmdir $targetdir;