mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Tests affected: innodb.group_commit_crash (verbosity improved)
This commit is contained in:
@@ -5,14 +5,15 @@ d CHAR(255),
|
|||||||
id INT,
|
id INT,
|
||||||
PRIMARY KEY(id)) ENGINE=InnoDB;
|
PRIMARY KEY(id)) ENGINE=InnoDB;
|
||||||
create table t2 like t1;
|
create table t2 like t1;
|
||||||
create procedure setcrash(IN i INT)
|
create function getcrash(i INT)
|
||||||
|
returns VARCHAR(255)
|
||||||
begin
|
begin
|
||||||
CASE i
|
CASE i
|
||||||
WHEN 1 THEN SET SESSION debug_dbug="d,crash_commit_after_prepare";
|
WHEN 1 THEN RETURN "crash_commit_after_prepare";
|
||||||
WHEN 2 THEN SET SESSION debug_dbug="d,crash_commit_after_log";
|
WHEN 2 THEN RETURN "crash_commit_after_log";
|
||||||
WHEN 3 THEN SET SESSION debug_dbug="d,crash_commit_before_unlog";
|
WHEN 3 THEN RETURN "crash_commit_before_unlog";
|
||||||
WHEN 4 THEN SET SESSION debug_dbug="d,crash_commit_after";
|
WHEN 4 THEN RETURN "crash_commit_after";
|
||||||
WHEN 5 THEN SET SESSION debug_dbug="d,crash_commit_before";
|
WHEN 5 THEN RETURN "crash_commit_before";
|
||||||
ELSE BEGIN END;
|
ELSE BEGIN END;
|
||||||
END CASE;
|
END CASE;
|
||||||
end //
|
end //
|
||||||
@@ -31,9 +32,12 @@ SET binlog_format= mixed;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
insert into t1 select * from t2;
|
insert into t1 select * from t2;
|
||||||
call setcrash(5);
|
SET @crash= getcrash(5);
|
||||||
|
SET SESSION debug_dbug=concat("d,", @crash);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
CRASH_POINT
|
||||||
|
crash_commit_before
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
a b c d id
|
a b c d id
|
||||||
SHOW BINLOG EVENTS LIMIT 4,1;
|
SHOW BINLOG EVENTS LIMIT 4,1;
|
||||||
@@ -43,9 +47,12 @@ SET binlog_format= mixed;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
insert into t1 select * from t2;
|
insert into t1 select * from t2;
|
||||||
call setcrash(4);
|
SET @crash= getcrash(4);
|
||||||
|
SET SESSION debug_dbug=concat("d,", @crash);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
CRASH_POINT
|
||||||
|
crash_commit_after
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
a b c d id
|
a b c d id
|
||||||
a b c d 1
|
a b c d 1
|
||||||
@@ -66,9 +73,12 @@ SET binlog_format= mixed;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
insert into t1 select * from t2;
|
insert into t1 select * from t2;
|
||||||
call setcrash(3);
|
SET @crash= getcrash(3);
|
||||||
|
SET SESSION debug_dbug=concat("d,", @crash);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
CRASH_POINT
|
||||||
|
crash_commit_before_unlog
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
a b c d id
|
a b c d id
|
||||||
a b c d 1
|
a b c d 1
|
||||||
@@ -89,9 +99,12 @@ SET binlog_format= mixed;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
insert into t1 select * from t2;
|
insert into t1 select * from t2;
|
||||||
call setcrash(2);
|
SET @crash= getcrash(2);
|
||||||
|
SET SESSION debug_dbug=concat("d,", @crash);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
CRASH_POINT
|
||||||
|
crash_commit_after_log
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
a b c d id
|
a b c d id
|
||||||
a b c d 1
|
a b c d 1
|
||||||
@@ -112,9 +125,12 @@ SET binlog_format= mixed;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
insert into t1 select * from t2;
|
insert into t1 select * from t2;
|
||||||
call setcrash(1);
|
SET @crash= getcrash(1);
|
||||||
|
SET SESSION debug_dbug=concat("d,", @crash);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
|
CRASH_POINT
|
||||||
|
crash_commit_after_prepare
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
a b c d id
|
a b c d id
|
||||||
SHOW BINLOG EVENTS LIMIT 4,1;
|
SHOW BINLOG EVENTS LIMIT 4,1;
|
||||||
@@ -122,4 +138,4 @@ Log_name Pos Event_type Server_id End_log_pos Info
|
|||||||
delete from t1;
|
delete from t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
DROP PROCEDURE setcrash;
|
DROP FUNCTION getcrash;
|
||||||
|
@@ -17,14 +17,15 @@ CREATE TABLE t1(a CHAR(255),
|
|||||||
PRIMARY KEY(id)) ENGINE=InnoDB;
|
PRIMARY KEY(id)) ENGINE=InnoDB;
|
||||||
create table t2 like t1;
|
create table t2 like t1;
|
||||||
delimiter //;
|
delimiter //;
|
||||||
create procedure setcrash(IN i INT)
|
create function getcrash(i INT)
|
||||||
|
returns VARCHAR(255)
|
||||||
begin
|
begin
|
||||||
CASE i
|
CASE i
|
||||||
WHEN 1 THEN SET SESSION debug_dbug="d,crash_commit_after_prepare";
|
WHEN 1 THEN RETURN "crash_commit_after_prepare";
|
||||||
WHEN 2 THEN SET SESSION debug_dbug="d,crash_commit_after_log";
|
WHEN 2 THEN RETURN "crash_commit_after_log";
|
||||||
WHEN 3 THEN SET SESSION debug_dbug="d,crash_commit_before_unlog";
|
WHEN 3 THEN RETURN "crash_commit_before_unlog";
|
||||||
WHEN 4 THEN SET SESSION debug_dbug="d,crash_commit_after";
|
WHEN 4 THEN RETURN "crash_commit_after";
|
||||||
WHEN 5 THEN SET SESSION debug_dbug="d,crash_commit_before";
|
WHEN 5 THEN RETURN "crash_commit_before";
|
||||||
ELSE BEGIN END;
|
ELSE BEGIN END;
|
||||||
END CASE;
|
END CASE;
|
||||||
end //
|
end //
|
||||||
@@ -53,8 +54,8 @@ while ($numtests)
|
|||||||
# Write file to make mysql-test-run.pl expect crash
|
# Write file to make mysql-test-run.pl expect crash
|
||||||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
|
|
||||||
eval call setcrash($numtests);
|
eval SET @crash= getcrash($numtests);
|
||||||
|
SET SESSION debug_dbug=concat("d,", @crash);
|
||||||
# Run the crashing query
|
# Run the crashing query
|
||||||
--error 2006,2013
|
--error 2006,2013
|
||||||
COMMIT;
|
COMMIT;
|
||||||
@@ -62,6 +63,10 @@ while ($numtests)
|
|||||||
# Poll the server waiting for it to be back online again.
|
# Poll the server waiting for it to be back online again.
|
||||||
--source include/wait_until_connected_again.inc
|
--source include/wait_until_connected_again.inc
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
eval SET @crash= getcrash($numtests);
|
||||||
|
SELECT @crash as CRASH_POINT;
|
||||||
|
--enable_query_log
|
||||||
# table and binlog should be in sync.
|
# table and binlog should be in sync.
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
--replace_column 2 # 5 #
|
--replace_column 2 # 5 #
|
||||||
@@ -75,4 +80,4 @@ while ($numtests)
|
|||||||
# final cleanup
|
# final cleanup
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
DROP PROCEDURE setcrash;
|
DROP FUNCTION getcrash;
|
||||||
|
@@ -1428,7 +1428,7 @@ int ha_commit_trans(THD *thd, bool all)
|
|||||||
if (trt.update())
|
if (trt.update())
|
||||||
goto err;
|
goto err;
|
||||||
if (all)
|
if (all)
|
||||||
trans_commit_stmt(thd);
|
commit_one_phase_2(thd, false, &thd->transaction.stmt, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user