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

Proposed by Laurynas Biveinis
Status: Merged
Approved by: Stewart Smith
Approved revision: no longer in the source branch.
Merged at revision: 472
Proposed branch: lp:~laurynas-biveinis/percona-server/bug1036530
Merge into: lp:percona-server/5.1
Diff against target: 66 lines (+27/-0)
2 files modified
Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp.result (+3/-0)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp.test (+24/-0)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/bug1036530
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve
Review via email: mp+119504@code.launchpad.net

Description of the change

Fix bug 1036530 (Sporadic innodb_plugin.percona_changed_page_bmp
failures in Jenkins).

The problem was flawed and unfinished crash injection testing in the
test case: the last server restart set up a crash injection before the
bitmap write but failed to actually trigger it in the test case. Then
the crash used to get triggered during the server shutdown bitmap
write and thus silently ignored by MTR. But sometimes the bitmap
write would happen while the server processes DROP TABLE command,
appearing as an unexpected server crash to MTR.

Fixed by triggering the crash site in the test case, waiting for the
server to come back again before starting the testsuite cleanups.

Additionally put extra workload on the server before this test case
part to have some good data pages in the bitmap file. Also added
comments to the test cace points where the LSN tracking range
contuinity will have to be tested once the necessary info is exposed
through INFORMATION_SCHEMA.

Re-recorded the testcase.

Jenkins: http://jenkins.percona.com/job/percona-server-5.1-param/368/
Issue #16274

To post a comment you must log in.
Revision history for this message
Stewart Smith (stewart) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp.result'
2--- Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp.result 2012-06-14 09:16:03 +0000
3+++ Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp.result 2012-08-14 10:37:21 +0000
4@@ -17,5 +17,8 @@
5 INSERT INTO t2 VALUES (1),(2),(3),(4),(5);
6 INSERT INTO t1 SELECT x FROM t1;
7 SET GLOBAL INNODB_FAST_SHUTDOWN=2;
8+INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
9 call mtr.add_suppression("InnoDB: Warning: truncated block detected.*");
10+INSERT INTO t1 SELECT x FROM t1;
11+ERROR HY000: Lost connection to MySQL server during query
12 DROP TABLE t1, t2;
13
14=== modified file 'Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp.test'
15--- Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp.test 2012-06-14 09:16:03 +0000
16+++ Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp.test 2012-08-14 10:37:21 +0000
17@@ -33,6 +33,9 @@
18 --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
19 --source include/wait_until_connected_again.inc
20
21+# TODO: check the tracked LSN range continuity once this info is exposed through
22+# INFORMATION_SCHEMA.
23+
24 # Create more log data, larger amount than the log group capacity. At the same time test second space id.
25 INSERT INTO t1 SELECT x FROM t1;
26 INSERT INTO t1 SELECT x FROM t1;
27@@ -67,6 +70,9 @@
28
29 --source include/restart_mysqld.inc
30
31+# TODO: check the tracked LSN range continuity once this info is exposed through
32+# INFORMATION_SCHEMA.
33+
34 file_exists $BITMAP_FILE;
35
36 # Test that an empty existing bitmap file is handled properly when it's impossible to re-read the full missing range.
37@@ -82,6 +88,8 @@
38 --source include/wait_until_connected_again.inc
39
40 file_exists $BITMAP_FILE;
41+# Create at least one more bitmap page on shutdown
42+INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
43
44 # Test that the bitmap file is read in block size multiples with junk at the end discarded
45 --exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
46@@ -97,4 +105,20 @@
47
48 file_exists $BITMAP_FILE;
49
50+# TODO: check the tracked LSN range continuity once this info is exposed through
51+# INFORMATION_SCHEMA.
52+
53+# Test crashing before writing of new bitmap data
54+
55+--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
56+--error 2013
57+INSERT INTO t1 SELECT x FROM t1;
58+--enable_reconnect
59+--source include/wait_until_connected_again.inc
60+
61+file_exists $BITMAP_FILE;
62+
63+# TODO: check the tracked LSN range continuity once this info is exposed through
64+# INFORMATION_SCHEMA.
65+
66 DROP TABLE t1, t2;

Subscribers

People subscribed via source and target branches