Merge lp:~laurynas-biveinis/percona-server/bug1089265-5.1 into lp:percona-server/5.1

Proposed by Laurynas Biveinis on 2013-02-15
Status: Merged
Approved by: Stewart Smith on 2013-02-20
Approved revision: 533
Merged at revision: 533
Proposed branch: lp:~laurynas-biveinis/percona-server/bug1089265-5.1
Merge into: lp:percona-server/5.1
Diff against target: 186 lines (+51/-31)
2 files modified
Percona-Server/mysql-test/suite/rpl/r/rpl_percona_crash_resistant_rpl.result (+18/-9)
Percona-Server/mysql-test/suite/rpl/t/rpl_percona_crash_resistant_rpl.test (+33/-22)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/bug1089265-5.1
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve on 2013-02-20
Registry Administrators 2013-02-15 Pending
Review via email: mp+148610@code.launchpad.net

Description of the change

Fix bug 1089265.
http://jenkins.percona.com/job/percona-server-5.1-param/522/

Fix bug 1089265 (Unstable rpl_percona_crash_resistant_rpl test).

The problem is that the crashes injected by the test might leave
slave's master.info corrupted, leaving it unable to start. As the
purpose of the test is to test relay-log.info and not master.info
corruption recovery, restructure the test so that the slave I/O thread
is stopped by the time the slave SQL thread runs and crashes, so that
master.info file is closed at that time.

To post a comment you must log in.
Stewart Smith (stewart) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Percona-Server/mysql-test/suite/rpl/r/rpl_percona_crash_resistant_rpl.result'
--- Percona-Server/mysql-test/suite/rpl/r/rpl_percona_crash_resistant_rpl.result 2012-08-16 13:36:42 +0000
+++ Percona-Server/mysql-test/suite/rpl/r/rpl_percona_crash_resistant_rpl.result 2013-02-15 05:12:24 +0000
@@ -11,40 +11,49 @@
11SELECT COUNT(*) FROM t1;11SELECT COUNT(*) FROM t1;
12COUNT(*)12COUNT(*)
131131
14STOP SLAVE;14include/stop_slave.inc
15include/wait_for_slave_to_stop.inc
16INSERT INTO t1 VALUES();15INSERT INTO t1 VALUES();
17SELECT COUNT(*) FROM t1;16SELECT COUNT(*) FROM t1;
18COUNT(*)17COUNT(*)
192182
19START SLAVE IO_THREAD;
20include/wait_for_slave_io_to_start.inc
21include/sync_slave_io_with_master.inc
22include/stop_slave_io.inc
20SET GLOBAL debug="+d,crash_commit_before";23SET GLOBAL debug="+d,crash_commit_before";
21START SLAVE;24START SLAVE SQL_THREAD;
22include/rpl_start_server.inc [server_number=2]25include/rpl_start_server.inc [server_number=2]
23include/start_slave.inc26include/start_slave.inc
24SELECT COUNT(*) FROM t1;27SELECT COUNT(*) FROM t1;
25COUNT(*)28COUNT(*)
262292
27STOP SLAVE;30include/stop_slave.inc
28include/wait_for_slave_to_stop.inc
29INSERT INTO t1 VALUES();31INSERT INTO t1 VALUES();
30SELECT COUNT(*) FROM t1;32SELECT COUNT(*) FROM t1;
31COUNT(*)33COUNT(*)
323343
35START SLAVE IO_THREAD;
36include/wait_for_slave_io_to_start.inc
37include/sync_slave_io_with_master.inc
38include/stop_slave_io.inc
33SET GLOBAL debug="+d,crash_innodb_after_prepare";39SET GLOBAL debug="+d,crash_innodb_after_prepare";
34START SLAVE;40START SLAVE SQL_THREAD;
35include/rpl_start_server.inc [server_number=2]41include/rpl_start_server.inc [server_number=2]
36include/start_slave.inc42include/start_slave.inc
37SELECT COUNT(*) FROM t1;43SELECT COUNT(*) FROM t1;
38COUNT(*)44COUNT(*)
393453
40STOP SLAVE;46include/stop_slave.inc
41include/wait_for_slave_to_stop.inc
42INSERT INTO t1 VALUES();47INSERT INTO t1 VALUES();
43SELECT COUNT(*) FROM t1;48SELECT COUNT(*) FROM t1;
44COUNT(*)49COUNT(*)
454504
51START SLAVE IO_THREAD;
52include/wait_for_slave_io_to_start.inc
53include/sync_slave_io_with_master.inc
54include/stop_slave_io.inc
46SET GLOBAL debug="+d,crash_innodb_before_commit";55SET GLOBAL debug="+d,crash_innodb_before_commit";
47START SLAVE;56START SLAVE SQL_THREAD;
48include/rpl_start_server.inc [server_number=2]57include/rpl_start_server.inc [server_number=2]
49include/start_slave.inc58include/start_slave.inc
50SELECT COUNT(*) FROM t1;59SELECT COUNT(*) FROM t1;
5160
=== modified file 'Percona-Server/mysql-test/suite/rpl/t/rpl_percona_crash_resistant_rpl.test'
--- Percona-Server/mysql-test/suite/rpl/t/rpl_percona_crash_resistant_rpl.test 2012-08-16 13:36:42 +0000
+++ Percona-Server/mysql-test/suite/rpl/t/rpl_percona_crash_resistant_rpl.test 2013-02-15 05:12:24 +0000
@@ -1,6 +1,5 @@
1# Tests for Percona crash-resistant replication feature1# Tests for Percona crash-resistant replication feature
2--source include/have_innodb_plugin.inc2--source include/have_innodb_plugin.inc
3--source include/master-slave.inc
4--source include/not_valgrind.inc3--source include/not_valgrind.inc
5--source include/not_crashrep.inc4--source include/not_crashrep.inc
6--source include/have_debug.inc5--source include/have_debug.inc
@@ -8,17 +7,16 @@
8#7#
9# Setup8# Setup
10#9#
10--source include/master-slave.inc
11
12--disable_warnings
13DROP TABLE IF EXISTS t1;
14--enable_warnings
1115
12--disable_query_log16--disable_query_log
13call mtr.add_suppression("InnoDB: Warning: innodb_overwrite_relay_log_info is enabled.");17call mtr.add_suppression("InnoDB: Warning: innodb_overwrite_relay_log_info is enabled.");
14--enable_query_log18--enable_query_log
1519
16connection master;
17
18--disable_warnings
19DROP TABLE IF EXISTS t1;
20--enable_warnings
21
22CREATE TABLE t1 (id INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id)) ENGINE=InnoDB;20CREATE TABLE t1 (id INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id)) ENGINE=InnoDB;
2321
24#22#
@@ -38,20 +36,25 @@
38# Test the crashing case where relay-log.info needs not to be overwritten36# Test the crashing case where relay-log.info needs not to be overwritten
39#37#
4038
41STOP SLAVE;39--source include/stop_slave.inc
42--source include/wait_for_slave_to_stop.inc
4340
44connection master;41connection master;
45INSERT INTO t1 VALUES();42INSERT INTO t1 VALUES();
46SELECT COUNT(*) FROM t1;43SELECT COUNT(*) FROM t1;
4744
48connection slave;45connection slave;
46# Get the master.info written to the disk before the SQL thread starts and crashes
47START SLAVE IO_THREAD;
48--source include/wait_for_slave_io_to_start.inc
49connection master;
50--source include/sync_slave_io_with_master.inc
51--source include/stop_slave_io.inc
52
49SET GLOBAL debug="+d,crash_commit_before";53SET GLOBAL debug="+d,crash_commit_before";
50--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect54--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
51--error 0,201355--error 0,2013
52START SLAVE;56START SLAVE SQL_THREAD;
53--source include/wait_until_disconnected.inc57--source include/wait_until_disconnected.inc
54--enable_reconnect
5558
56--let $rpl_server_number= 259--let $rpl_server_number= 2
57--source include/rpl_start_server.inc60--source include/rpl_start_server.inc
@@ -63,20 +66,24 @@
63#66#
64# Test the rollback of slave position stored in the InnoDB trx header.67# Test the rollback of slave position stored in the InnoDB trx header.
65#68#
66STOP SLAVE;69--source include/stop_slave.inc
67--source include/wait_for_slave_to_stop.inc
6870
69connection master;71connection master;
70INSERT INTO t1 VALUES();72INSERT INTO t1 VALUES();
71SELECT COUNT(*) FROM t1;73SELECT COUNT(*) FROM t1;
7274
73connection slave;75connection slave;
76# Get the master.info written to the disk before the SQL thread starts and crashes
77START SLAVE IO_THREAD;
78--source include/wait_for_slave_io_to_start.inc
79connection master;
80--source include/sync_slave_io_with_master.inc
81--source include/stop_slave_io.inc
74SET GLOBAL debug="+d,crash_innodb_after_prepare";82SET GLOBAL debug="+d,crash_innodb_after_prepare";
75--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect83--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
76--error 0,201384--error 0,2013
77START SLAVE;85START SLAVE SQL_THREAD;
78--source include/wait_until_disconnected.inc86--source include/wait_until_disconnected.inc
79--enable_reconnect
8087
81--let $rpl_server_number= 288--let $rpl_server_number= 2
82--source include/rpl_start_server.inc89--source include/rpl_start_server.inc
@@ -88,19 +95,23 @@
88#95#
89# Test crash with XA transaction recovery (bug 1012715)96# Test crash with XA transaction recovery (bug 1012715)
90#97#
91STOP SLAVE;98--source include/stop_slave.inc
92--source include/wait_for_slave_to_stop.inc
93connection master;99connection master;
94INSERT INTO t1 VALUES();100INSERT INTO t1 VALUES();
95SELECT COUNT(*) FROM t1;101SELECT COUNT(*) FROM t1;
96102
97connection slave;103connection slave;
104# Get the master.info written to the disk before the SQL thread starts and crashes
105START SLAVE IO_THREAD;
106--source include/wait_for_slave_io_to_start.inc
107connection master;
108--source include/sync_slave_io_with_master.inc
109--source include/stop_slave_io.inc
98SET GLOBAL debug="+d,crash_innodb_before_commit";110SET GLOBAL debug="+d,crash_innodb_before_commit";
99--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect111--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
100--error 0,2013112--error 0,2013
101START SLAVE;113START SLAVE SQL_THREAD;
102--source include/wait_until_disconnected.inc114--source include/wait_until_disconnected.inc
103--enable_reconnect
104115
105--let $rpl_server_number= 2116--let $rpl_server_number= 2
106--source include/rpl_start_server.inc117--source include/rpl_start_server.inc

Subscribers

People subscribed via source and target branches