| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 
 | # Test resizing the InnoDB redo log.
--source include/innodb_page_size_small.inc
# Embedded server tests do not support restarting
--source include/not_embedded.inc
# DBUG_EXECUTE_IF is needed
--source include/have_debug.inc
# This test is slow on buildbot.
--source include/big_test.inc
--disable_query_log
call mtr.add_suppression("syntax error in innodb_log_group_home_dir");
call mtr.add_suppression("Plugin 'InnoDB' init function returned error");
call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed");
call mtr.add_suppression("InnoDB: Plugin initialization aborted");
call mtr.add_suppression("InnoDB: innodb_read_only prevents crash recovery");
call mtr.add_suppression("InnoDB: Log file .*ib_logfile1.* size");
call mtr.add_suppression("InnoDB: File .*ib_logfile0 (is too small|was not found)");
call mtr.add_suppression("InnoDB: Expecting only ib_logfile0");
FLUSH TABLES;
--enable_query_log
let MYSQLD_DATADIR= `select @@datadir`;
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
--source include/shutdown_mysqld.inc
perl;
do "$ENV{MTR_SUITE_DIR}/include/crc32.pl";
my $file = "$ENV{MYSQLD_DATADIR}ib_logfile0";
open(FILE, "<$file") || die "Unable to open $file\n";
seek(FILE, 4096, 0) || die "Unable to seek $file\n";
die unless read(FILE, $_, 8) == 8;
my ($lsn_hi,$lsn_lo) = unpack("NN", $_);
seek(FILE, 8192, 0) || die "Unable to seek $file\n";
die unless read(FILE, $_, 8) == 8;
my ($cp2hi,$cp2lo) = unpack("NN", $_);
if ($cp2hi < $lsn_hi) {}
elsif ($cp2hi > $lsn_hi || $cp2lo > $lsn_lo)
{ $lsn_hi=$cp2hi;$lsn_lo=$cp2lo; }
close(FILE);
open(FILE, ">", $file) or die "Unable to open $file\n";
binmode FILE;
my $polynomial = 0x82f63b78; # CRC-32C
my ($header, $checkpoint, $log);
$header = "Phys" . pack("x[4]NN", $lsn_hi, $lsn_lo) .
          "some Perl code" . pack("x[478]");
$header .= pack("Nx[3584]", mycrc32($header, 0, $polynomial));
$checkpoint = pack("NNNNx[44]", $lsn_hi, $lsn_lo, $lsn_hi, $lsn_lo);
$checkpoint .= pack("Nx[8128]", mycrc32($checkpoint, 0, $polynomial));
$log = pack("CxxNN", 0xfa, $lsn_hi, $lsn_lo);
$log .= pack("CN", 1, mycrc32($log, 0, $polynomial));
print FILE $header, $checkpoint, $log;
close(FILE) or die "Unable to close $file\n";
EOF
let $check_no_innodb=SELECT * FROM INFORMATION_SCHEMA.ENGINES
WHERE engine = 'innodb'
AND support IN ('YES', 'DEFAULT', 'ENABLED');
--let $restart_parameters= --innodb-log-file-size=4m
--source include/start_mysqld.inc
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
CHECK TABLE t1;
--let $restart_parameters= --innodb-log-file-size=20M
--source include/restart_mysqld.inc
BEGIN;
INSERT INTO t1 VALUES (42);
let $restart_parameters = --innodb-log-file-size=12M;
let $shutdown_timeout=0;
--source include/restart_mysqld.inc
SELECT * FROM t1;
INSERT INTO t1 VALUES (42);
BEGIN;
DELETE FROM t1;
let $restart_parameters = --innodb-log-file-size=5M;
--source include/restart_mysqld.inc
let $shutdown_timeout=;
SELECT * FROM t1;
INSERT INTO t1 VALUES (0),(123);
let SEARCH_ABORT = NOT FOUND;
BEGIN;
DELETE FROM t1 WHERE a>0;
--echo # Persist the state of the above incomplete transaction by
--echo # causing a redo log write for another transaction.
--connect(con1, localhost, root)
SET GLOBAL innodb_flush_log_at_trx_commit=1;
DELETE FROM t1 WHERE a=0;
--disconnect con1
--connection default
--source include/kill_mysqld.inc
--let $restart_parameters= --innodb-log-group-home-dir=foo\;bar
--source include/start_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= syntax error in innodb_log_group_home_dir;
--source include/search_pattern_in_file.inc
--let $restart_parameters= --debug=d,innodb_log_abort_1
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= InnoDB: Starting crash recovery from checkpoint LSN=.*;
--source include/search_pattern_in_file.inc
--let $restart_parameters= --innodb-read-only
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery;
--source include/search_pattern_in_file.inc
--let $restart_parameters= --debug=d,innodb_log_abort_5
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= redo log from 5\\.000MiB to [0-9.]*[KMGT]iB;
--source include/search_pattern_in_file.inc
--let $restart_parameters= --innodb-read-only
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery;
--source include/search_pattern_in_file.inc
# Trigger an error in recovery.
--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101
--write_file $MYSQLD_DATADIR/ib_logfile0
garbage
EOF
--let $restart_parameters=
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= InnoDB: File .*ib_logfile0 is too small;
--source include/search_pattern_in_file.inc
--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile1
--move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
SELECT * FROM t1;
let SEARCH_PATTERN= InnoDB: Expecting only ib_logfile0;
--source include/search_pattern_in_file.inc
--remove_file $MYSQLD_DATADIR/ib_logfile1
--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101
--source include/restart_mysqld.inc
--error ER_UNKNOWN_STORAGE_ENGINE
let SEARCH_PATTERN= InnoDB: File .*ib_logfile0 was not found;
--source include/search_pattern_in_file.inc
--move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0
--source include/restart_mysqld.inc
SELECT * FROM t1;
DROP TABLE t1;
--let SEARCH_PATTERN= InnoDB: Resizing redo log from 5\\.000MiB to [0-9.]*[KMGT]iB; LSN=\\d+\\b
--source include/search_pattern_in_file.inc
 |