mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
Clean up a few tests that kill the server.
As noted in MDEV-8841, any test that kills the server must issue FLUSH TABLES, so that tables of crash-unsafe storage engines will not be corrupted. Consistently issue this statement after any call mtr.add_suppression() calls. Also, do not invoke shutdown_server directly, but use helpers instead.
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
call mtr.add_suppression("InnoDB: The total blob data length");
|
|
||||||
SET GLOBAL max_allowed_packet = 100*1024*1024;
|
SET GLOBAL max_allowed_packet = 100*1024*1024;
|
||||||
# Connection big_packets:
|
# Connection big_packets:
|
||||||
CREATE TABLE t1 (a BIGINT PRIMARY KEY, b LONGBLOB) ENGINE=InnoDB;
|
CREATE TABLE t1 (a BIGINT PRIMARY KEY, b LONGBLOB) ENGINE=InnoDB;
|
||||||
@@ -10,9 +9,7 @@ INSERT INTO t1 (a, b) VALUES (5, '5');
|
|||||||
start transaction;
|
start transaction;
|
||||||
INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 20*1024*1024));
|
INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 20*1024*1024));
|
||||||
ERROR 42000: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
|
ERROR 42000: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
|
||||||
# Connection default:
|
# Kill and restart
|
||||||
# Quick shutdown and restart server
|
|
||||||
# Connection default:
|
|
||||||
SELECT a FROM t1;
|
SELECT a FROM t1;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
call mtr.add_suppression("Found 3 prepared XA transactions");
|
|
||||||
flush tables;
|
|
||||||
CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB;
|
CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB;
|
||||||
INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32);
|
INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
@@ -16,6 +14,7 @@ XA START '789';
|
|||||||
UPDATE t SET b=4*a WHERE a=32;
|
UPDATE t SET b=4*a WHERE a=32;
|
||||||
XA END '789';
|
XA END '789';
|
||||||
XA PREPARE '789';
|
XA PREPARE '789';
|
||||||
|
# Kill and restart
|
||||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||||
SELECT * FROM t;
|
SELECT * FROM t;
|
||||||
a b
|
a b
|
||||||
|
@@ -4,7 +4,7 @@ XA START 'x';
|
|||||||
UPDATE t1 set a=2;
|
UPDATE t1 set a=2;
|
||||||
XA END 'x';
|
XA END 'x';
|
||||||
XA PREPARE 'x';
|
XA PREPARE 'x';
|
||||||
call mtr.add_suppression("Found 1 prepared XA transactions");
|
# Kill and restart
|
||||||
SELECT * FROM t1 LOCK IN SHARE MODE;
|
SELECT * FROM t1 LOCK IN SHARE MODE;
|
||||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
|
@@ -2,11 +2,13 @@
|
|||||||
--source include/not_crashrep.inc
|
--source include/not_crashrep.inc
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
call mtr.add_suppression("InnoDB: The total blob data length");
|
|
||||||
|
|
||||||
let $old_max_allowed_packet = `select @@max_allowed_packet`;
|
|
||||||
SET GLOBAL max_allowed_packet = 100*1024*1024;
|
SET GLOBAL max_allowed_packet = 100*1024*1024;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
call mtr.add_suppression("InnoDB: The total blob data length");
|
||||||
|
FLUSH TABLES;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
--echo # Connection big_packets:
|
--echo # Connection big_packets:
|
||||||
connect(big_packets,localhost,root,,);
|
connect(big_packets,localhost,root,,);
|
||||||
connection big_packets;
|
connection big_packets;
|
||||||
@@ -28,28 +30,12 @@ start transaction;
|
|||||||
--error ER_TOO_BIG_ROWSIZE
|
--error ER_TOO_BIG_ROWSIZE
|
||||||
INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 20*1024*1024));
|
INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 20*1024*1024));
|
||||||
|
|
||||||
--echo # Connection default:
|
|
||||||
connection default;
|
|
||||||
|
|
||||||
# We expect a restart.
|
|
||||||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
|
|
||||||
--echo # Quick shutdown and restart server
|
|
||||||
--shutdown_server 0
|
|
||||||
|
|
||||||
# Wait for the server to come back up, and reconnect.
|
|
||||||
--enable_reconnect
|
|
||||||
--source include/wait_until_connected_again.inc
|
|
||||||
|
|
||||||
--echo # Connection default:
|
|
||||||
connection default;
|
connection default;
|
||||||
|
--source include/kill_and_restart_mysqld.inc
|
||||||
|
disconnect big_packets;
|
||||||
|
|
||||||
# We should see (1,2,3,4,5) here.
|
# We should see (1,2,3,4,5) here.
|
||||||
SELECT a FROM t1;
|
SELECT a FROM t1;
|
||||||
|
|
||||||
# Clean up.
|
# Clean up.
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
eval set global max_allowed_packet = $old_max_allowed_packet;
|
|
||||||
--enable_query_log
|
|
||||||
|
@@ -2,11 +2,11 @@
|
|||||||
# Bug #59641 Prepared XA transaction causes shutdown hang after a crash
|
# Bug #59641 Prepared XA transaction causes shutdown hang after a crash
|
||||||
|
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
# The server would issue this warning on restart.
|
|
||||||
call mtr.add_suppression("Found 3 prepared XA transactions");
|
|
||||||
|
|
||||||
# Close tables used by other tests (to not get crashed myisam tables)
|
--disable_query_log
|
||||||
flush tables;
|
call mtr.add_suppression("Found 3 prepared XA transactions");
|
||||||
|
FLUSH TABLES;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB;
|
CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB;
|
||||||
INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32);
|
INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32);
|
||||||
@@ -17,7 +17,6 @@ XA END '123';
|
|||||||
XA PREPARE '123';
|
XA PREPARE '123';
|
||||||
|
|
||||||
CONNECT (con1,localhost,root,,);
|
CONNECT (con1,localhost,root,,);
|
||||||
CONNECTION con1;
|
|
||||||
|
|
||||||
XA START '456';
|
XA START '456';
|
||||||
INSERT INTO t VALUES(3,47),(5,67);
|
INSERT INTO t VALUES(3,47),(5,67);
|
||||||
@@ -26,7 +25,6 @@ XA END '456';
|
|||||||
XA PREPARE '456';
|
XA PREPARE '456';
|
||||||
|
|
||||||
CONNECT (con2,localhost,root,,);
|
CONNECT (con2,localhost,root,,);
|
||||||
CONNECTION con2;
|
|
||||||
|
|
||||||
XA START '789';
|
XA START '789';
|
||||||
UPDATE t SET b=4*a WHERE a=32;
|
UPDATE t SET b=4*a WHERE a=32;
|
||||||
@@ -34,30 +32,13 @@ XA END '789';
|
|||||||
XA PREPARE '789';
|
XA PREPARE '789';
|
||||||
|
|
||||||
CONNECT (con3,localhost,root,,);
|
CONNECT (con3,localhost,root,,);
|
||||||
CONNECTION con3;
|
|
||||||
|
|
||||||
# Kill the server without sending a shutdown command
|
--source include/kill_and_restart_mysqld.inc
|
||||||
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
-- shutdown_server 0
|
|
||||||
-- source include/wait_until_disconnected.inc
|
|
||||||
|
|
||||||
# Restart the server.
|
|
||||||
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
-- enable_reconnect
|
|
||||||
-- source include/wait_until_connected_again.inc
|
|
||||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||||
SELECT * FROM t;
|
SELECT * FROM t;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
# Shut down the server. This would hang because of the bug.
|
--source include/restart_mysqld.inc
|
||||||
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
-- shutdown_server
|
|
||||||
-- source include/wait_until_disconnected.inc
|
|
||||||
|
|
||||||
# Restart the server.
|
|
||||||
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
-- enable_reconnect
|
|
||||||
-- source include/wait_until_connected_again.inc
|
|
||||||
|
|
||||||
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||||
SELECT * FROM t;
|
SELECT * FROM t;
|
||||||
|
@@ -13,6 +13,14 @@ if (`SELECT @@innodb_log_file_size = 1048576`) {
|
|||||||
--skip Test requires innodb_log_file_size>1M.
|
--skip Test requires innodb_log_file_size>1M.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
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");
|
||||||
|
FLUSH TABLES;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
BEGIN;
|
BEGIN;
|
||||||
INSERT INTO t1 VALUES (42);
|
INSERT INTO t1 VALUES (42);
|
||||||
@@ -176,12 +184,5 @@ let SEARCH_PATTERN= InnoDB: Renaming log file .*ib_logfile101 to .*ib_logfile0;
|
|||||||
--let $restart_parameters=
|
--let $restart_parameters=
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
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");
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@@ -1,7 +1,3 @@
|
|||||||
if (`select plugin_auth_version <= "5.6.24" from information_schema.plugins where plugin_name='innodb'`)
|
|
||||||
{
|
|
||||||
--skip Not fixed in InnoDB as of 5.6.24 or earlier
|
|
||||||
}
|
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
# Embedded server does not support restarting.
|
# Embedded server does not support restarting.
|
||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
@@ -9,6 +5,7 @@ if (`select plugin_auth_version <= "5.6.24" from information_schema.plugins wher
|
|||||||
# MDEV-8841 - close tables opened by previous tests,
|
# MDEV-8841 - close tables opened by previous tests,
|
||||||
# so they don't get marked crashed when the server gets crashed
|
# so they don't get marked crashed when the server gets crashed
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
call mtr.add_suppression("Found 1 prepared XA transactions");
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
@@ -18,17 +15,7 @@ connect (con1,localhost,root);
|
|||||||
XA START 'x'; UPDATE t1 set a=2; XA END 'x'; XA PREPARE 'x';
|
XA START 'x'; UPDATE t1 set a=2; XA END 'x'; XA PREPARE 'x';
|
||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
call mtr.add_suppression("Found 1 prepared XA transactions");
|
--source include/kill_and_restart_mysqld.inc
|
||||||
|
|
||||||
# Kill and restart the server.
|
|
||||||
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
-- shutdown_server 0
|
|
||||||
-- source include/wait_until_disconnected.inc
|
|
||||||
|
|
||||||
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
-- enable_reconnect
|
|
||||||
-- source include/wait_until_connected_again.inc
|
|
||||||
-- disable_reconnect
|
|
||||||
|
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
connect (con1,localhost,root);
|
connect (con1,localhost,root);
|
||||||
|
Reference in New Issue
Block a user