Suboptimal fake changes handling in online ALTER storage engine API
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Fix Released
|
Low
|
Krunal Bauskar | ||
5.1 |
Invalid
|
Undecided
|
Unassigned | ||
5.5 |
Invalid
|
Undecided
|
Unassigned | ||
5.6 |
Fix Released
|
Low
|
Krunal Bauskar |
Bug Description
Based on Facebook patch 5.6 port review:
1) prepare_
if (UNIV_UNLIKELY(
trx_rollback_
trx_free_
DBUG_
}
This is dead code, and ut_ad(!
2) Generalizing the above, ha_innobase:
tags: | added: fake-changes xtradb |
As per the discussion and investigation.
- #1 is dead code as the blocking is done at higher level for inplace ha_innobase: :prepare_ inplace_ alter_table
- #2 is more logical but changes rejecting inplace will put the flow in copy mode giving a weird create table failure message vs "Got error 131 during COMMIT" std message seen from most stmt while operating in fake-change mode. So given this we will retain the existing checks but will get rid of dead code as part of this bug fix.