Merge lp:~laurynas-biveinis/percona-server/bug1342494-5.6 into lp:percona-server/5.6

Proposed by Laurynas Biveinis
Status: Merged
Approved by: Laurynas Biveinis
Approved revision: no longer in the source branch.
Merged at revision: 628
Proposed branch: lp:~laurynas-biveinis/percona-server/bug1342494-5.6
Merge into: lp:percona-server/5.6
Diff against target: 92 lines (+40/-8)
4 files modified
mysql-test/suite/innodb/r/percona_changed_pages_log_tracking_off.result (+4/-0)
mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off-master.opt (+1/-0)
mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off.test (+22/-0)
storage/innobase/log/log0online.cc (+13/-8)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/bug1342494-5.6
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Approve
Review via email: mp+227328@code.launchpad.net

Description of the change

To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'mysql-test/suite/innodb/r/percona_changed_pages_log_tracking_off.result'
--- mysql-test/suite/innodb/r/percona_changed_pages_log_tracking_off.result 1970-01-01 00:00:00 +0000
+++ mysql-test/suite/innodb/r/percona_changed_pages_log_tracking_off.result 2014-07-18 13:51:04 +0000
@@ -0,0 +1,4 @@
1creating inconsistent bitmap dir: start LSN of 3rd file < start LSN of 2nd file
2call mtr.add_suppression("inconsistent bitmap file directory");
3SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES;
4ERROR HY000: Can't read record in system table
05
=== added file 'mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off-master.opt'
--- mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off-master.opt 1970-01-01 00:00:00 +0000
+++ mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off-master.opt 2014-07-18 13:51:04 +0000
@@ -0,0 +1,1 @@
1--innodb-track-changed-pages=0
02
=== added file 'mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off.test'
--- mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off.test 1970-01-01 00:00:00 +0000
+++ mysql-test/suite/innodb/t/percona_changed_pages_log_tracking_off.test 2014-07-18 13:51:04 +0000
@@ -0,0 +1,22 @@
1# Tests for queries from INFORMATION_SCHEMA.INNODB_CHANGED_PAGES that don't require
2# a running log tracker
3
4let $MYSQLD_DATADIR= `select @@datadir`;
5
6# Test for bug 1342494: InnoDB: Failing assertion: bitmap_files->files[i].start_lsn
7# >= bitmap_files->files[i - 1].start_lsn on inconsistent bitmap file directory
8
9--echo creating inconsistent bitmap dir: start LSN of 3rd file < start LSN of 2nd file
10write_file $MYSQLD_DATADIR/ib_modified_log_1_0.xdb;
11EOF
12write_file $MYSQLD_DATADIR/ib_modified_log_2_10.xdb;
13EOF
14write_file $MYSQLD_DATADIR/ib_modified_log_3_5.xdb;
15EOF
16
17call mtr.add_suppression("inconsistent bitmap file directory");
18
19--error ER_CANT_FIND_SYSTEM_REC
20SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES;
21
22remove_files_wildcard $MYSQLD_DATADIR ib_modified_log*;
023
=== modified file 'storage/innobase/log/log0online.cc'
--- storage/innobase/log/log0online.cc 2014-07-16 09:05:45 +0000
+++ storage/innobase/log/log0online.cc 2014-07-18 13:51:04 +0000
@@ -1264,6 +1264,7 @@
1264/*********************************************************************//**1264/*********************************************************************//**
1265Diagnose a bitmap file range setup failure and free the partially-initialized1265Diagnose a bitmap file range setup failure and free the partially-initialized
1266bitmap file range. */1266bitmap file range. */
1267UNIV_COLD
1267static1268static
1268void1269void
1269log_online_diagnose_inconsistent_dir(1270log_online_diagnose_inconsistent_dir(
@@ -1445,26 +1446,30 @@
1445 return FALSE;1446 return FALSE;
1446 }1447 }
14471448
1448#ifdef UNIV_DEBUG1449 if (!bitmap_files->files[0].seq_num
1449 if (!bitmap_files->files[0].seq_num) {1450 || bitmap_files->files[0].seq_num != first_file_seq_num) {
14501451
1451 log_online_diagnose_inconsistent_dir(bitmap_files);1452 log_online_diagnose_inconsistent_dir(bitmap_files);
1452 return FALSE;1453 return FALSE;
1453 }1454 }
1454 ut_ad(bitmap_files->files[0].seq_num == first_file_seq_num);1455
1455 {1456 {
1456 size_t i;1457 size_t i;
1457 for (i = 1; i < bitmap_files->count; i++) {1458 for (i = 1; i < bitmap_files->count; i++) {
1458 if (!bitmap_files->files[i].seq_num) {1459 if (!bitmap_files->files[i].seq_num) {
1459 break;1460 break;
1460 }1461 }
1461 ut_ad(bitmap_files->files[i].seq_num1462 if ((bitmap_files->files[i].seq_num
1462 > bitmap_files->files[i - 1].seq_num);1463 <= bitmap_files->files[i - 1].seq_num)
1463 ut_ad(bitmap_files->files[i].start_lsn1464 || (bitmap_files->files[i].start_lsn
1464 >= bitmap_files->files[i - 1].start_lsn);1465 < bitmap_files->files[i - 1].start_lsn)) {
1466
1467 log_online_diagnose_inconsistent_dir(
1468 bitmap_files);
1469 return FALSE;
1470 }
1465 }1471 }
1466 }1472 }
1467#endif
14681473
1469 return TRUE;1474 return TRUE;
1470}1475}

Subscribers

People subscribed via source and target branches