Merge lp://staging/~laurynas-biveinis/percona-server/BT-16274-bug1111226-5.1 into lp://staging/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: 527
Proposed branch: lp://staging/~laurynas-biveinis/percona-server/BT-16274-bug1111226-5.1
Merge into: lp://staging/percona-server/5.1
Diff against target: 168 lines (+104/-15)
4 files modified
Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp_debug.result (+23/-0)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp_debug-master.opt (+1/-0)
Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp_debug.test (+56/-0)
Percona-Server/storage/innodb_plugin/log/log0online.c (+24/-15)
To merge this branch: bzr merge lp://staging/~laurynas-biveinis/percona-server/BT-16274-bug1111226-5.1
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve
George Ormond Lorch III (community) g2 Approve
Laurynas Biveinis Pending
Review via email: mp+147066@code.staging.launchpad.net

This proposal supersedes a proposal from 2013-01-31.

Description of the change

2nd MP: unify 5.1 and 5.5 tests.
http://jenkins.percona.com/job/percona-server-5.1-param/520/

Fix bug 1111226 for 5.1
No BT or ST, but 16274 QA

Fix bug 1111226 (Writing larger than 4GB bitmap file fails; bitmap
write error causes heap corruption).

The first issue is incorrect higher 32 bits of write offset
calculation: the 64-bit offset was shifted to the left instead of the
right, fixed trivially.

The second issue is that if a bitmap page write fails (for example,
due to the condition above), then log_online_write_bitmap() exits
prematurely with a return code signalling error. But, if at least one
bitmap page was written successfully, then the written bitmap tree
nodes will be doubly pointed to: from the bitmap tree itself and from
the free node list. This will cause a heap corruption on the log
following thread shutdown (which happens immediatelly in the case of
bitmap write error).

Fixed by keeping iterating over the bitmap tree in case of error, but
skipping the actual write. This way all the tree nodes are moved to
free list for the subsequent cleanup.

Add a write failure injection site and a new testcase
percona_changed_page_debug.

To post a comment you must log in.
Revision history for this message
George Ormond Lorch III (gl-az) wrote : Posted in a previous version of this proposal

percona_changed_page_bmp_debug.test is slightly different from 5.5 MP in the way the server restarts are structured and order of:
RESET CHANGED_PAGE_BITMAPS;
CREATE TABLE t1 (x INT) ENGINE=InnoDB;

Is this intentional?

review: Needs Information (g2)
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : Posted in a previous version of this proposal

Discussion on the 5.5 MP.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) : Posted in a previous version of this proposal
review: Needs Fixing
Revision history for this message
George Ormond Lorch III (gl-az) :
review: Approve (g2)
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
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches