48 lines
1.4 KiB
PHP
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
|
|
}
|
|
}
|