lp:~laurynas-biveinis/percona-server/bmp-fixes-5.1
- Get this branch:
- bzr branch lp:~laurynas-biveinis/percona-server/bmp-fixes-5.1
Branch merges
- Stewart Smith (community): Approve
-
Diff: 1153 lines (+400/-142) (has conflicts)16 files modifiedPercona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp.result (+7/-0)
Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_pages.result (+58/-33)
Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_pages_empty.result (+1/-0)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp.test (+33/-0)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp_flush.test (+2/-2)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_pages.test (+99/-28)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_pages_empty.test (+4/-2)
Percona-Server/storage/innodb_plugin/handler/i_s.cc (+8/-6)
Percona-Server/storage/innodb_plugin/include/log0log.h (+3/-1)
Percona-Server/storage/innodb_plugin/include/log0online.h (+2/-0)
Percona-Server/storage/innodb_plugin/include/os0file.h (+4/-2)
Percona-Server/storage/innodb_plugin/log/log0log.c (+13/-3)
Percona-Server/storage/innodb_plugin/log/log0online.c (+162/-54)
Percona-Server/storage/innodb_plugin/log/log0recv.c (+4/-3)
Percona-Server/storage/innodb_plugin/os/os0file.c (+0/-2)
Percona-Server/storage/innodb_plugin/srv/srv0start.c (+0/-6)
Related bugs
Related blueprints
Branch information
- Owner:
- Laurynas Biveinis
- Status:
- Merged
Recent revisions
- 552. By Laurynas Biveinis
-
Fix
- bug 1185304 (INFORMATION_
SCHEMA. INNODB_ CHANGED_ PAGES should be
queriable when the log tracker is not running);- bug 1184427 (Failing assertion: i->in_files.count > 0 in file
log0online.cc line 1511 | abort in log_online_bitmap_ iterator_ init). I_S.INNODB_
CHANGED_ PAGES querying is needlessly limited to require
running log tracker, although there is no dependency in the code of
any kind. Remove this requirement. Then, I_C_P queries may fail if
no bitmaps are found for the requested range (or any bitmaps at all,
if, for example, log tracker was never enabled for the instance).
Fix by adjusting the bitmap file iterator to support iterating over
empty range.Adjust percona_
changed_ pages_empty testcase comments to reflect the
reality. Add the test to percona_changed_ pages that bitmaps are read
the same way regardless of log tracking status. Robustify
percona_changed_ pages_empty testcase against bitmaps present from
previous testcases. - 551. By Laurynas Biveinis
-
Fix bug 1131949 (server won't start when flush_method=
ALL_O_DIRECT and
track_changed_pages=TRUE) . The issue is that bitmap tracking performs the log read I/Os following
the same configuration as the log subsystem itself. That is, if
innodb_flush_method= ALL_O_DIRECT, then the log files have O_DIRECT set
on them, and the read buffer must be block-aligned, but it was not.Fix by aligning the log tracker log reader buffer at
OS_FILE_LOG_BLOCK_ SIZE. - 550. By Laurynas Biveinis
-
Fix
- bug 1179974 (INFORMATION_
SCHEMA. INNODB_ CHANGED_ PAGES query fails
server with an I/O error if a bitmap file in the middle of requested
range is missing);- bug 1185040 (INFORMATION_
SCHEMA. INNODB_ CHANGED_ PAGES_QUERY should
return a warning if the result set is partial).The INFORMATION_
SCHEMA. INNODB_ CHANGED_ PAGES plugin relies on bitmap
files on disk to return queries, but there is no guarantee that these
files will complete and non-corrupt for a given query LSN range. The
code failed to handle several of these situations correctly, resulting
in a server crash (bug 1179974) and the presence of such failures was
not returned to the client (bug 1185040).Fix by
- Updating the bitmap reader with the latest code from XtraBackup 2.1,
where several missing bitmap file scenarios have been handled
already.
- Making os_file_close_no_ error_handling( ) available if
!UNIV_HOTBACKUP too, and using it instead of os_file_close() in the
bitmap file reader.
- Preventing a double bitmap file close on I/O error by setting the
bitmap file handle to os_file_invalid and checking it in
log_online_bitmap_ release( ).
- Adding a new flag failed to struct log_bitmap_iterator_ struct. Set
this flag whenever missing bitmap data or an I/O error prevents the
I_S query from returning full result set.
- Checking that flag in the INFORMATION_SCHEMA plugin and returning
ER_CANT_FIND_SYSTEM_ REC if it's set.
- Adding a testcase to percona_changed_ pages.test. - 549. By Laurynas Biveinis
-
Fix bug 1184517 (Race condition between checking status of and
deleting a bitmap file).If an old bitmap file is to be removed, then ENOENT error while trying
to delete is by definition to be ignored. Fixed by replacing
os_file_delete() call with os_file_delete_ if_exists( ) in
log_online_start_bitmap_ file(). At the same time tighten the log_online_
should_ overwrite( ) check by
checking the type of the file as well.No testsuite changes because they would require a DEBUG_SYNC, and this
code runs only during the startup with predictable file names. - 548. By Laurynas Biveinis
-
Fix bug 1171699 (Log tracking should not acquire log mutex for log
reading).The issue is that log_group_
read_log_ seg() requires the log mutex and
holds it through the read operation itself. Fixed adding a new arg
specifying whether the mutex should be released before the actual read
I/O operation. - 547. By Laurynas Biveinis
-
Fix bug 1181887 (Error: Cannot create
'/databasesib_modified_ log_1_0. xdb'). The cause is a missing path separator between the directory and file
name components in a bitmap file name, which happens if
innodb_data_home_ dir does not end in a path separator. Fix by introducing new field bmp_file_home in log_bitmap_struct,
initializing it from srv_data_home in log_online_read_init( ), and
adding a trailing path separator if needed. Then use this field
instead of srv_data_home throughout the bitmap file writer. The
bitmap file reader seems to be unaffected and continues to use
srv_data_home.Add a testcase to percona_
changed_ page_bmp. - 546. By Laurynas Biveinis
-
Fix bug 1132412 (Typo in percona_
changed_ page_bmp_ flush.test precludes
ALL_O_DIRECT testing) by fixing the test to actually test
ALL_O_DIRECT. - 545. By Laurynas Biveinis
-
Fix bug 1153651 (Windows warnings comparing HANDLE and -1).
On Windows it does not make sense to compare or set os_file_t values
which is of type HANDLE there, which is a pointer, to -1. Thus
introduce new define in os0file.h, os_file_invalid, which expands to
INVALID_HANDLE_ VALUE on Windows and -1 otherwise and use it throughout
log0online.c. Remove os_file_t assignment to -1 in
log_online_start_bitmap_ file() where it is redundant due ot
os_file_create_ simple_ no_error_ handling( ) already setting it for us. - 543. By <email address hidden>
-
Merge lp:~hrvojem/percona-server/bug1129858-5.1
http://jenkins. percona. com/job/ merge-PS- 5.1-docs- kickoff/ 14/
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:percona-server/5.6