Merge lp:~laurynas-biveinis/percona-server/bug999147-5.5 into lp:percona-server/5.5
Status: | Merged |
---|---|
Approved by: | Alexey Kopytov |
Approved revision: | no longer in the source branch. |
Merged at revision: | 241 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug999147-5.5 |
Merge into: | lp:percona-server/5.5 |
Diff against target: |
80 lines (+43/-1) 5 files modified
Percona-Server/mysql-test/suite/innodb/r/percona_bug_999147.result (+10/-0) Percona-Server/mysql-test/suite/innodb/t/percona_bug_999147-master.opt (+1/-0) Percona-Server/mysql-test/suite/innodb/t/percona_bug_999147.test (+29/-0) Percona-Server/storage/innobase/handler/handler0alter.cc (+2/-0) Percona-Server/storage/innobase/row/row0mysql.c (+1/-1) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/bug999147-5.5 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexey Kopytov (community) | Approve | ||
Review via email: mp+105939@code.launchpad.net |
Description of the change
Fix bug 999147 (A crash that leaves behind an InnoDB temporary table
with indexes results in an unbootable server).
The issue happens on server start up if there exists a temporary table
from the crashed session that has a temporary index on it. Then
row_
cache in order to drop the index. Later row_mysql_
will try to load exact same table again and will be unable to handle
that the table is already loaded.
The only place in InnoDB that uses temporary indexes is the regular
table index creation and drop. This code however is not used for the
temporary tables, as they are created anew with the final index
definitions and then data is copied.
However the Percona Server expanded index creation might use the
regular index creation and drop code path in a case with
expanded fast index creation enabled: when there is an
already-
the new temp table and recreated after copying the data.
The fix is in row_mysql_
dict_
check the cache and call the former only if needed.
For testing we need to crash the server when the temporary index is
present. For that, add a new crash injection site
"crash_
ha_
Add a new test case percona_bug_999147.
Issue #23438.
http:// jenkins. percona. com/view/ Percona% 20Server% 205.5/job/ percona- server- 5.5-param/ 370/