Merge lp:~akopytov/percona-xtrabackup/bug1055547-2.0 into lp:percona-xtrabackup/2.0
Status: | Merged |
---|---|
Approved by: | Sergei Glushchenko |
Approved revision: | no longer in the source branch. |
Merged at revision: | 514 |
Proposed branch: | lp:~akopytov/percona-xtrabackup/bug1055547-2.0 |
Merge into: | lp:percona-xtrabackup/2.0 |
Diff against target: |
39 lines (+7/-6) 1 file modified
src/xtrabackup.cc (+7/-6) |
To merge this branch: | bzr merge lp:~akopytov/percona-xtrabackup/bug1055547-2.0 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sergei Glushchenko (community) | g2 | Approve | |
Review via email: mp+152247@code.launchpad.net |
Description of the change
Bug #1055547: xtrabackup as SST fails when innodb_flush_method is
XtraBackup sometimes calls os_file_read() / os_file_write() calls on the
log file to read/update log file header. The problem was that those
calls honor the innodb_flush_method value and thus may do O_DIRECT I/O,
which has strict alignment rules on both I/O operations themselves and
user-space buffers, i.e. they must be aligned on the filesystem block
size. I/O operations could never become a problem, because we always
read/write from/to the start of the file. However, user-space buffers
used for those operations were aligned to LOG_FILE_HDR_SIZE (2048 bytes),
which is not necessarily greater than the FS block size.
Fixed by making sure buffers are aligned to UNIV_PAGE_SIZE_MAX (16
KB). Which may be redundant, since it is unlikely that FS block sizes >
4 KB are ever used or even supported. However, that constant is used to
be on the safe side and similar to other buffers alignment.
http://
Approve