summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Nielsen <knielsen@knielsen-hq.org>2014-11-25 14:19:11 +0100
committerKristian Nielsen <knielsen@knielsen-hq.org>2014-11-25 14:19:11 +0100
commite79b7ca966040d5da910e823e98841efd7c3556b (patch)
tree99e0af26d8454e50b372258ad25d62b1cddb185c
parentb79685902d95df2c98544e8171b92cb09417328e (diff)
downloadmariadb-git-e79b7ca966040d5da910e823e98841efd7c3556b.tar.gz
MDEV-7179: rpl.rpl_gtid_crash failed in buildbot with Warning: database page corruption or a failed
I saw two test failures in rpl.rpl_gtid_crash where we get this in the error log: 141123 12:47:54 [Note] InnoDB: Restoring possible half-written data pages 141123 12:47:54 [Note] InnoDB: from the doublewrite buffer... InnoDB: Warning: database page corruption or a failed InnoDB: file read of space 6 page 3. InnoDB: Trying to recover it from the doublewrite buffer. 141123 12:47:54 [Note] InnoDB: Recovered the page from the doublewrite buffer. This test case deliberately crashes the server, and if this crash happens right in the middle of writing a buffer pool page to disk, it is not unexpected that we can get a half-written page. The page is recovered correctly from the doublewrite buffer. So this patch adds a suppression for this warning in the error log for this test case.
-rw-r--r--mysql-test/suite/rpl/r/rpl_gtid_crash.result1
-rw-r--r--mysql-test/suite/rpl/t/rpl_gtid_crash.test5
2 files changed, 6 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/r/rpl_gtid_crash.result b/mysql-test/suite/rpl/r/rpl_gtid_crash.result
index bbe1dfc6c5f..75bd9d0cbb1 100644
--- a/mysql-test/suite/rpl/r/rpl_gtid_crash.result
+++ b/mysql-test/suite/rpl/r/rpl_gtid_crash.result
@@ -3,6 +3,7 @@ include/rpl_init.inc [topology=1->2]
call mtr.add_suppression("Checking table:");
call mtr.add_suppression("client is using or hasn't closed the table properly");
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
+call mtr.add_suppression("InnoDB: Warning: database page corruption or a failed");
flush tables;
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
diff --git a/mysql-test/suite/rpl/t/rpl_gtid_crash.test b/mysql-test/suite/rpl/t/rpl_gtid_crash.test
index fed9b8256db..a6d07ed69f0 100644
--- a/mysql-test/suite/rpl/t/rpl_gtid_crash.test
+++ b/mysql-test/suite/rpl/t/rpl_gtid_crash.test
@@ -12,6 +12,11 @@
call mtr.add_suppression("Checking table:");
call mtr.add_suppression("client is using or hasn't closed the table properly");
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
+# We have seen this warning a couple of times in Buildbot. Since we crash the
+# server deliberately, it seems possible that we could in rare cases crash in
+# the middle of a page write. The page is recovered from the doublewrite
+# buffer ("[Note] InnoDB: Recovered the page from the doublewrite buffer.").
+call mtr.add_suppression("InnoDB: Warning: database page corruption or a failed");
flush tables;
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;