Merge lp:~laurynas-biveinis/percona-server/26611-bug917942-5.1 into lp:percona-server/5.1
Status: | Merged |
---|---|
Approved by: | Stewart Smith |
Approved revision: | no longer in the source branch. |
Merged at revision: | 498 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/26611-bug917942-5.1 |
Merge into: | lp:percona-server/5.1 |
Prerequisite: | lp:~laurynas-biveinis/percona-server/bug1064326-5.1 |
Diff against target: |
395 lines (+288/-7) 7 files modified
Percona-Server/mysql-test/r/percona_innodb_fake_changes_bug_917942.result (+151/-0) Percona-Server/mysql-test/t/percona_innodb_fake_changes_bug_917942-master.opt (+1/-0) Percona-Server/mysql-test/t/percona_innodb_fake_changes_bug_917942.test (+103/-0) Percona-Server/storage/innodb_plugin/btr/btr0cur.c (+28/-4) Percona-Server/storage/innodb_plugin/btr/btr0pcur.c (+1/-0) Percona-Server/storage/innodb_plugin/ibuf/ibuf0ibuf.c (+1/-1) Percona-Server/storage/innodb_plugin/include/btr0cur.h (+3/-2) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/26611-bug917942-5.1 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Review via email: mp+130074@code.launchpad.net |
Description of the change
Fix bug 917942 (fake-changes infinite loop on update, allocates many
extents).
The bug was reported by, and the fix and testcase are adopted from
Facebook MySQL branch, revision 3787 of lp:mysqlatfacebook/51.
The issue is btr_cur_
cursor->tree_height when fake changes enabled, which is then used to
compute the number of extents to allocate. Other similar functions
(btr_cur_
to be unaffected.
Fixed by initializing cursor->tree_height to ULINT_UNDEFINED in
btr_pcur_
btr_cur_
fake changes. Added checks in btr_cur_
btr_cur_
Make btr_cur_
page_zip_
write to log and to avoid hitting asserts. For that, pass trx to the
former and update all callers.
Add a testcase for the bug.
http://
26611