Suboptimal srv_pass_corrupt_table checks
Bug #1125248 reported by
Alexey Kopytov
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Fix Released
|
Medium
|
Laurynas Biveinis | ||
5.1 |
Won't Fix
|
Undecided
|
Unassigned | ||
5.5 |
Fix Released
|
Medium
|
Alexey Kopytov | ||
5.6 |
Fix Released
|
Medium
|
Laurynas Biveinis |
Bug Description
srv_pass_
block = btr_block_
index, mtr);
if (srv_pass_
return(0);
}
ut_a(block);
3 problems for the common (i.e. non- corrupted case):
- it is more efficient to first check for the 'block' value, since it is already in a register, and then the value of srv_pass_
- no branch prediction info for the compiler
- if srv_pass_
Related branches
lp:~akopytov/percona-server/bug1125248
- Stewart Smith (community): Approve
-
Diff: 955 lines (+198/-208)17 files modifiedPercona-Server/storage/innobase/btr/btr0btr.c (+17/-21)
Percona-Server/storage/innobase/btr/btr0cur.c (+51/-60)
Percona-Server/storage/innobase/btr/btr0pcur.c (+6/-7)
Percona-Server/storage/innobase/btr/btr0sea.c (+1/-4)
Percona-Server/storage/innobase/buf/buf0buf.c (+31/-16)
Percona-Server/storage/innobase/buf/buf0rea.c (+1/-7)
Percona-Server/storage/innobase/dict/dict0dict.c (+3/-3)
Percona-Server/storage/innobase/fil/fil0fil.c (+27/-29)
Percona-Server/storage/innobase/fsp/fsp0fsp.c (+15/-30)
Percona-Server/storage/innobase/handler/ha_innodb.cc (+14/-7)
Percona-Server/storage/innobase/include/btr0btr.ic (+1/-1)
Percona-Server/storage/innobase/include/buf0buf.ic (+1/-7)
Percona-Server/storage/innobase/include/fut0fut.ic (+1/-4)
Percona-Server/storage/innobase/include/srv0srv.h (+15/-0)
Percona-Server/storage/innobase/row/row0ins.c (+5/-4)
Percona-Server/storage/innobase/row/row0merge.c (+3/-3)
Percona-Server/storage/innobase/row/row0sel.c (+6/-5)
lp:~laurynas-biveinis/percona-server/5.6-merge-3
- Alexey Kopytov (community): Approve
- Percona core: Pending requested
-
Diff: 19408 lines (+2919/-15492)66 files modifiedPercona-Server/client/mysqldump.c (+35/-4)
Percona-Server/mysql-test/r/create_delayed.result (+3/-0)
Percona-Server/mysql-test/r/percona_bug1127008.result (+28/-0)
Percona-Server/mysql-test/r/percona_innodb_version.result (+1/-1)
Percona-Server/mysql-test/r/percona_mysqldump_innodb_optimize_keys.result (+0/-443)
Percona-Server/mysql-test/suite/innodb/r/percona_bug_1133926.result (+4/-0)
Percona-Server/mysql-test/suite/innodb/t/percona_bug_999147-master.opt (+0/-1)
Percona-Server/mysql-test/suite/sys_vars/r/expand_fast_index_creation_basic.result (+6/-0)
Percona-Server/mysql-test/suite/sys_vars/r/innodb_corrupt_table_action_basic.result (+49/-0)
Percona-Server/mysql-test/t/create_delayed.test (+34/-0)
Percona-Server/mysql-test/t/percona_bug1127008.test (+28/-0)
Percona-Server/mysql-test/t/percona_innodb_version.test (+1/-1)
Percona-Server/mysql-test/t/percona_mysqldump_innodb_optimize_keys.test (+0/-227)
Percona-Server/scripts/fill_help_tables.sql (+2177/-9)
Percona-Server/sql/mdl.cc (+5/-1)
Percona-Server/sql/sql_base.cc (+92/-16)
Percona-Server/sql/sql_base.h (+2/-1)
Percona-Server/sql/sql_db.cc (+1/-1)
Percona-Server/sql/sql_insert.cc (+4/-0)
Percona-Server/sql/sql_parse.cc (+8/-1)
Percona-Server/sql/sql_table.cc (+5/-1)
Percona-Server/storage/innobase/btr/btr0btr.cc (+19/-23)
Percona-Server/storage/innobase/btr/btr0cur.cc (+52/-61)
Percona-Server/storage/innobase/btr/btr0pcur.cc (+6/-7)
Percona-Server/storage/innobase/btr/btr0sea.cc (+1/-4)
Percona-Server/storage/innobase/buf/buf0buf.cc (+31/-16)
Percona-Server/storage/innobase/buf/buf0rea.cc (+2/-4)
Percona-Server/storage/innobase/fil/fil0fil.cc (+26/-32)
Percona-Server/storage/innobase/fsp/fsp0fsp.cc (+15/-33)
Percona-Server/storage/innobase/handler/ha_innodb.cc (+4/-2)
Percona-Server/storage/innobase/include/btr0btr.ic (+1/-1)
Percona-Server/storage/innobase/include/buf0buf.ic (+1/-7)
Percona-Server/storage/innobase/include/fut0fut.ic (+1/-4)
Percona-Server/storage/innobase/include/srv0srv.h (+16/-0)
Percona-Server/storage/innobase/row/row0ins.cc (+5/-4)
Percona-Server/storage/innobase/row/row0merge.cc (+3/-2)
Percona-Server/storage/innobase/row/row0sel.cc (+6/-5)
build/build-binary.sh (+38/-1)
build/debian/additions/innotop/InnoDBParser.pm (+0/-1089)
build/debian/additions/innotop/changelog.innotop (+0/-318)
build/debian/additions/innotop/innotop (+0/-9485)
build/debian/additions/innotop/innotop.1 (+0/-2086)
build/debian/percona-server-client-5.6.dirs (+0/-1)
build/debian/percona-server-client-5.6.docs (+0/-1)
build/debian/percona-server-client-5.6.install (+0/-3)
build/debian/percona-server-client-5.6.lintian-overrides (+0/-2)
build/debian/percona-server-server-5.6.postinst (+9/-1)
build/percona-server.spec (+26/-27)
build/percona-shared-compat.spec (+4/-0)
doc/Makefile (+0/-145)
doc/source/diagnostics/innodb_deadlock_count.rst (+0/-57)
doc/source/diagnostics/innodb_show_lock_names.rst (+0/-24)
doc/source/diagnostics/innodb_show_status.rst (+0/-475)
doc/source/diagnostics/misc_info_schema_tables.rst (+0/-48)
doc/source/diagnostics/mysql_syslog.rst (+0/-43)
doc/source/diagnostics/process_list.rst (+0/-53)
doc/source/diagnostics/show_engines.rst (+0/-40)
doc/source/diagnostics/slow_extended_55.rst (+0/-377)
doc/source/diagnostics/thread_based_profiling.rst (+0/-17)
doc/source/diagnostics/user_stats.rst (+0/-242)
doc/source/installation/apt_repo.rst (+65/-0)
doc/source/installation/yum_repo.rst (+81/-0)
doc/source/release-notes/Percona-Server-5.6.5-60.0.rst (+0/-26)
doc/source/release-notes/Percona-Server-5.6.6-60.1.rst (+0/-18)
doc/source/release-notes/release-notes_index.rst (+11/-0)
doc/source/upstream-bug-fixes.rst (+13/-1)
To post a comment you must log in.
So it happens that corrupt table action feature was merged to 5.6, in unfinished state, probably by mistake.
In any case we have to track this bug for 5.6 too, in order no to lose it.