Merge lp:~laurynas-biveinis/percona-server/bug1191580-1191589-5.1 into lp:percona-server/5.1
Status: | Superseded |
---|---|
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug1191580-1191589-5.1 |
Merge into: | lp:percona-server/5.1 |
Prerequisite: | lp:~laurynas-biveinis/percona-server/bug1217002-5.1 |
Diff against target: |
158 lines (+73/-7) 4 files modified
Percona-Server/mysql-test/suite/innodb_plugin/r/percona_changed_page_bmp_debug.result (+6/-0) Percona-Server/mysql-test/suite/innodb_plugin/t/percona_changed_page_bmp_debug.test (+31/-0) Percona-Server/storage/innodb_plugin/handler/i_s.cc (+2/-0) Percona-Server/storage/innodb_plugin/log/log0online.c (+34/-7) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/bug1191580-1191589-5.1 |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Vlad Lesin (community) | g2 | Needs Fixing | |
Registry Administrators | Pending | ||
Review via email: mp+186707@code.launchpad.net |
This proposal has been superseded by a proposal from 2013-09-25.
Description of the change
No BT or ST, 5.6 QA blocker.
http://
Fix
- bug 1191580 (InnoDB: Failing assertion:
bitmap_
log0online.cc line 1423 | abort in
log_online_
- bug 1191589 (mysqld-debug: .../sql/
Protocol:
INFORMATION_
The issue is bug 1191580 is a race condition between the two bitmap
file enumeration passes in log_online_
the 1st bitmap file in the range is deleted at that point, then the
debug build will crash as reported on this bug. For release builds
this is not an issue as the missing bitmap file will be detected and
diagnosed on an attempt to open it, as fixed by bug 1179974. The
current bug shows that the fix for the latter was incomplete.
Fixed by adjusting the range check code in
log_online_
print diagnostics, and return range setup error. Since these
diagnostics are now printed in two places instead of one, pull it out
to a new static function log_online_
Adjust it to print "Warning" instead of "Error" as it's not a fatal
issue.
At the same time fix bug 1191589. The issue there is that on
log_online_
error is not returned to client properly. Fixed by returning
ER_CANT_
schema_
avoid having to return some error in the case of its failure as well.
Add a testcase, common for both bugs, to
percona_
This change
@@ -4029,11 +4030,7 @@
continue;
if (cond && !cond->val_int())
- if (schema_ table_store_ record( thd, table)) bitmap_ iterator_ release( &i); table_store_ record( thd, table));
- {
- log_online_
- DBUG_RETURN(1);
- }
+ OK(schema_
}
should be reverted because if schema_ table_store_ record( ) fails (for example there is no free space for MyISAM temp table) there will be memory leak as heap memory allocation was done during initialization of "i" iterator.