polardbxengine/mysql-test/suite/innodb/include/log_fill_block.inc

48 lines
1.4 KiB
PHP

# Enable all METRICS within log module
SET GLOBAL innodb_monitor_enable = module_log;
--source ../include/log_read_current_lsn.inc
--let $start_lsn = $current_lsn
SET GLOBAL DEBUG = "+d,trx_commit_to_the_end_of_log_block";
SET AUTOCOMMIT = 0;
eval $log_fill_block_sql;
if ($log_fill_block_and_crash == 1) {
# Crash just before writing a next incomplete log block
if ($debug_test) {
--source ../include/log_read_current_lsn.inc
--echo State: creating trx ending at blocks boundary
--echo Start LSN: $start_lsn
--echo Before COMMIT LSN: $current_lsn
}
SET GLOBAL DEBUG = "+d,log_writer_before_write_new_incomplete_block";
# We will crash during log writer's attempt to write 12 bytes of the header of the next block
--source include/expect_crash.inc
# COMMIT must not report it succeeded without writing the extra 12 bytes of the next block.
--error 2013
}
COMMIT;
if ($log_fill_block_and_crash == 0) {
SET GLOBAL DEBUG = "-d,trx_commit_to_the_end_of_log_block";
--source ../include/log_read_current_lsn.inc
--let $end_lsn = $current_lsn
--let $assert_text = We failed to create log records that would end at boundary between blocks
--let $assert_cond = [SELECT $end_lsn MOD 512] = 12
--source include/assert.inc
if ($debug_test) {
--echo State: created trx ending at blocks boundary
--echo Start LSN: $start_lsn
--echo End LSN: $end_lsn
}
}