Skip to content

Commit

Permalink
Merge 10.0 into 10.1
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Jan 26, 2017
2 parents 6fbfb4c + afb4615 commit f1f8ebc
Show file tree
Hide file tree
Showing 13 changed files with 581 additions and 364 deletions.
19 changes: 19 additions & 0 deletions mysql-test/include/kill_and_restart_mysqld.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
--let $_server_id= `SELECT @@server_id`
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect

if ($restart_parameters)
{
--echo # Kill and restart: $restart_parameters
--exec echo "restart: $restart_parameters" > $_expect_file_name
}
if (!$restart_parameters)
{
--echo # Kill and restart
--exec echo "restart" > $_expect_file_name
}

--shutdown_server 0
--source include/wait_until_disconnected.inc
--enable_reconnect
--source include/wait_until_connected_again.inc
--disable_reconnect
31 changes: 31 additions & 0 deletions mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
select @@max_binlog_stmt_cache_size;
@@max_binlog_stmt_cache_size
18446744073709547520
set global max_binlog_stmt_cache_size= 18446744073709547520;
select @@max_binlog_stmt_cache_size;
@@max_binlog_stmt_cache_size
18446744073709547520
set global max_binlog_stmt_cache_size= 18446744073709547519;
Warnings:
Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709547519'
select @@max_binlog_stmt_cache_size;
@@max_binlog_stmt_cache_size
18446744073709543424
set global max_binlog_stmt_cache_size= 18446744073709551615;
Warnings:
Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709551615'
select @@max_binlog_stmt_cache_size;
@@max_binlog_stmt_cache_size
18446744073709547520
set global max_binlog_stmt_cache_size= 18446744073709551614;
Warnings:
Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709551614'
select @@max_binlog_stmt_cache_size;
@@max_binlog_stmt_cache_size
18446744073709547520
set global max_binlog_stmt_cache_size= 18446744073709551616;
ERROR 42000: Incorrect argument type to variable 'max_binlog_stmt_cache_size'
select @@max_binlog_stmt_cache_size;
@@max_binlog_stmt_cache_size
18446744073709547520
set global max_binlog_stmt_cache_size= 18446744073709547520;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--max_binlog_stmt_cache_size=18446744073709547520
22 changes: 22 additions & 0 deletions mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
source include/have_log_bin.inc;
select @@max_binlog_stmt_cache_size;

--let $cache_size=`select @@max_binlog_stmt_cache_size;`

set global max_binlog_stmt_cache_size= 18446744073709547520;
select @@max_binlog_stmt_cache_size;

set global max_binlog_stmt_cache_size= 18446744073709547519;
select @@max_binlog_stmt_cache_size;

set global max_binlog_stmt_cache_size= 18446744073709551615;
select @@max_binlog_stmt_cache_size;

set global max_binlog_stmt_cache_size= 18446744073709551614;
select @@max_binlog_stmt_cache_size;

--error ER_WRONG_TYPE_FOR_VAR
set global max_binlog_stmt_cache_size= 18446744073709551616;
select @@max_binlog_stmt_cache_size;

--eval set global max_binlog_stmt_cache_size= $cache_size
35 changes: 35 additions & 0 deletions mysql-test/suite/innodb/r/log_file_size.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
call mtr.add_suppression("InnoDB: Resizing redo log");
call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files");
call mtr.add_suppression("InnoDB: New log files created");
call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles");
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
BEGIN;
INSERT INTO t1 VALUES (42);
# Kill and restart: --innodb-log-file-size=6M
SELECT * FROM t1;
a
INSERT INTO t1 VALUES (42);
BEGIN;
DELETE FROM t1;
# Kill and restart: --innodb-log-files-in-group=3 --innodb-log-file-size=5M
SELECT * FROM t1;
a
42
INSERT INTO t1 VALUES (123);
BEGIN;
DELETE FROM t1;
# Kill the server
--innodb-force-recovery-crash=1
--innodb-force-recovery-crash=3
--innodb-force-recovery-crash=4
--innodb-force-recovery-crash=5
--innodb-force-recovery-crash=6
--innodb-force-recovery-crash=7
--innodb-force-recovery-crash=8
--innodb-force-recovery-crash=9
--innodb-force-recovery-crash=10
SELECT * FROM t1;
a
42
123
DROP TABLE t1;
185 changes: 185 additions & 0 deletions mysql-test/suite/innodb/t/log_file_size.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
# Test resizing the InnoDB redo log.

--source include/have_innodb.inc

# Embedded server does not support crashing
--source include/not_embedded.inc
# Avoid CrashReporter popup on Mac
--source include/not_crashrep.inc
# innodb-force-recovery-crash needs debug
--source include/have_debug.inc

if (`SELECT @@innodb_log_file_size = 1048576`) {
--skip Test requires innodb_log_file_size>1M.
}

call mtr.add_suppression("InnoDB: Resizing redo log");
call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files");
call mtr.add_suppression("InnoDB: New log files created");
call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles");

CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
BEGIN;
INSERT INTO t1 VALUES (42);

let $restart_parameters = --innodb-log-file-size=6M;
--source include/kill_and_restart_mysqld.inc

SELECT * FROM t1;

INSERT INTO t1 VALUES (42);
BEGIN;
DELETE FROM t1;

let $restart_parameters = --innodb-log-files-in-group=3 --innodb-log-file-size=5M;
--source include/kill_and_restart_mysqld.inc

SELECT * FROM t1;

INSERT INTO t1 VALUES (123);

let MYSQLD_DATADIR= `select @@datadir`;
let SEARCH_ABORT = NOT FOUND;
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
let $args=--innodb --unknown-option --loose-console --core-file > $SEARCH_FILE 2>&1;
let $crash=--innodb --unknown-option --loose-console > $SEARCH_FILE 2>&1 --innodb-force-recovery-crash;

BEGIN;
DELETE FROM t1;

--source include/kill_mysqld.inc

--error 2
--exec $MYSQLD_CMD $args --innodb-log-group-home-dir=foo\;bar
let SEARCH_PATTERN= syntax error in innodb_log_group_home_dir;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--echo --innodb-force-recovery-crash=1
--error 3
--exec $MYSQLD_CMD $crash=1
let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--echo --innodb-force-recovery-crash=3
--error 3
--exec $MYSQLD_CMD $crash=3
let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--error 2
--exec $MYSQLD_CMD $args --innodb-read-only
let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--echo --innodb-force-recovery-crash=4
--error 3
--exec $MYSQLD_CMD $crash=4
let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--echo --innodb-force-recovery-crash=5
--error 3
--exec $MYSQLD_CMD $crash=5
let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--error 2
--exec $MYSQLD_CMD $args --innodb-read-only
let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--echo --innodb-force-recovery-crash=6
--error 3
--exec $MYSQLD_CMD $crash=6
let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--echo --innodb-force-recovery-crash=7
--error 3
--exec $MYSQLD_CMD $crash=7
# this crashes right after deleting all log files
--remove_file $SEARCH_FILE

--error 2
--exec $MYSQLD_CMD $args --innodb-read-only
let SEARCH_PATTERN= InnoDB: Cannot create log files in read-only mode;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--echo --innodb-force-recovery-crash=8
--error 3
--exec $MYSQLD_CMD $crash=8
let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--echo --innodb-force-recovery-crash=9
--error 3
--exec $MYSQLD_CMD $crash=9
let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

# We should have perfectly synced files here.
# Rename the log files, and trigger an error in recovery.
--move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0
--move_file $MYSQLD_DATADIR/ib_logfile1 $MYSQLD_DATADIR/ib_logfile1_hidden
--error 2
--exec $MYSQLD_CMD $args
let SEARCH_PATTERN= InnoDB: Only one log file found;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101

perl;
die unless open(FILE, ">$ENV{MYSQLD_DATADIR}/ib_logfile0");
print FILE "garbage";
close(FILE);
EOF
--error 2
--exec $MYSQLD_CMD $args
let SEARCH_PATTERN= InnoDB: Log file .*ib_logfile0 size 7 is not a multiple of innodb_page_size;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--remove_file $MYSQLD_DATADIR/ib_logfile0
--move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0

perl;
die unless open(FILE, ">$ENV{MYSQLD_DATADIR}/ib_logfile1");
print FILE "junkfill" x 131072;
close(FILE);
EOF

--error 2
--exec $MYSQLD_CMD $args
let SEARCH_PATTERN= InnoDB: Log file .*ib_logfile1 is of different size 1048576 bytes than other log files;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE
--remove_file $MYSQLD_DATADIR/ib_logfile1
--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101
--move_file $MYSQLD_DATADIR/ib_logfile1_hidden $MYSQLD_DATADIR/ib_logfile1

--echo --innodb-force-recovery-crash=10
--error 3
--exec $MYSQLD_CMD $crash=10
let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= InnoDB: Renaming log file .*ib_logfile101 to .*ib_logfile0;
--source include/search_pattern_in_file.inc
--remove_file $SEARCH_FILE

--let $restart_parameters=
--source include/start_mysqld.inc

SELECT * FROM t1;
DROP TABLE t1;
Loading

0 comments on commit f1f8ebc

Please sign in to comment.