Description:
Many tests get "conditional jump or move depends on unitialized values" valgrind warnings for builtin InnoDB
That includes innodb.innodb innodb.innodb_misc1 innodb.innodb_mysql main.partition_innodb
main.cache_innodb innodb.innodb_bug21704 innodb.innodb_bug47621 innodb.innodb_bug48024
Example valgrind stacks include:
==444== Thread 11:
==444== Conditional jump or move depends on uninitialised value(s)
==444== at 0x8888B9: dict_load_foreign (dict0load.c:1241)
==444== by 0x888BE1: dict_load_foreigns (dict0load.c:1389)
==444== by 0x8DF5BE: row_table_add_foreign_constraints (row0mysql.c:2162)
==444== by 0x85D47A: ha_innobase::create(char const*, st_table*, st_ha_create_information*) (ha_innodb.cc:5739)
==444== by 0x7670F0: handler::ha_create(char const*, st_table*, st_ha_create_information*) (handler.cc:3403)
==444== by 0x76A7AB: ha_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, bool) (handler.cc:3610)
==444== by 0x714861: rea_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, List<Create_field>&, unsigned, st_key*, handler*) (unir
eg.cc:421)
==444== by 0x7913D6: mysql_create_table_no_lock(THD*, char const*, char const*, st_ha_create_information*, Alter_info*, bool, unsigned) (sql_table.cc:3979)
==444== by 0x79399F: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7225)
==444== by 0x629402: mysql_execute_command(THD*) (sql_parse.cc:2968)
==444== by 0x6304B2: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6051)
==444== by 0x631E2E: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260)
==444== by 0x6332A6: do_command(THD*) (sql_parse.cc:888)
==444== by 0x61F36C: handle_one_connection (sql_connect.cc:1136)
==444== by 0x328F8062F6: start_thread (in /lib64/libpthread-2.5.so)
==444== by 0x328ECD1E3C: clone (in /lib64/libc-2.5.so)
==444== Conditional jump or move depends on uninitialised value(s)
==444== at 0x8888B9: dict_load_foreign (dict0load.c:1241)
==444== by 0x888BE1: dict_load_foreigns (dict0load.c:1389)
==444== by 0x8E266C: row_rename_table_for_mysql (row0mysql.c:3923)
==444== by 0x85BF06: ha_innobase::rename_table(char const*, char const*) (ha_innodb.cc:6098)
==444== by 0x76719A: handler::ha_rename_table(char const*, char const*) (handler.cc:3358)
==444== by 0x79038C: mysql_rename_table(handlerton*, char const*, char const*, char const*, char const*, unsigned) (sql_table.cc:4203)
==444== by 0x794519: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7482)
==444== by 0x629402: mysql_execute_command(THD*) (sql_parse.cc:2968)
==444== by 0x6304B2: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6051)
==444== by 0x631E2E: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260)
==444== by 0x6332A6: do_command(THD*) (sql_parse.cc:888)
==444== by 0x61F36C: handle_one_connection (sql_connect.cc:1136)
==444== by 0x328F8062F6: start_thread (in /lib64/libpthread-2.5.so)
==444== by 0x328ECD1E3C: clone (in /lib64/libc-2.5.so)
==1071== Thread 11:
==1071== Conditional jump or move depends on uninitialised value(s)
==1071== at 0x8888B9: dict_load_foreign (dict0load.c:1241)
==1071== by 0x888BE1: dict_load_foreigns (dict0load.c:1389)
==1071== by 0x8DF5BE: row_table_add_foreign_constraints (row0mysql.c:2162)
==1071== by 0x85D47A: ha_innobase::create(char const*, st_table*, st_ha_create_information*) (ha_innodb.cc:5739)
==1071== by 0x7670F0: handler::ha_create(char const*, st_table*, st_ha_create_information*) (handler.cc:3403)
==1071== by 0x76A7AB: ha_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, bool) (handler.cc:3610)
==1071== by 0x714861: rea_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, List<Create_field>&, unsigned, st_key*, handler*) (uni
reg.cc:421)
==1071== by 0x7913D6: mysql_create_table_no_lock(THD*, char const*, char const*, st_ha_create_information*, Alter_info*, bool, unsigned) (sql_table.cc:3979)
==1071== by 0x7917FA: mysql_create_table(THD*, char const*, char const*, st_ha_create_information*, Alter_info*, bool, unsigned) (sql_table.cc:4076)
==1071== by 0x628C03: mysql_execute_command(THD*) (sql_parse.cc:2805)
==1071== by 0x6304B2: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6051)
==1071== by 0x631E2E: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260)
==1071== by 0x6332A6: do_command(THD*) (sql_parse.cc:888)
==1071== by 0x61F36C: handle_one_connection (sql_connect.cc:1136)
==1071== by 0x328F8062F6: start_thread (in /lib64/libpthread-2.5.so)
==1071== by 0x328ECD1E3C: clone (in /lib64/libc-2.5.so)
==1071== Conditional jump or move depends on uninitialised value(s)
==1071== at 0x8888B9: dict_load_foreign (dict0load.c:1241)
==1071== by 0x888BE1: dict_load_foreigns (dict0load.c:1389)
==1071== by 0x8E266C: row_rename_table_for_mysql (row0mysql.c:3923)
==1071== by 0x85BF06: ha_innobase::rename_table(char const*, char const*) (ha_innodb.cc:6098)
==1071== by 0x76719A: handler::ha_rename_table(char const*, char const*) (handler.cc:3358)
==1071== by 0x79038C: mysql_rename_table(handlerton*, char const*, char const*, char const*, char const*, unsigned) (sql_table.cc:4203)
==1071== by 0x794519: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7482)
==1071== by 0x628DF0: mysql_execute_command(THD*) (sql_parse.cc:2854)
==1071== by 0x6304B2: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6051)
==1071== by 0x631E2E: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260)
==1071== by 0x6332A6: do_command(THD*) (sql_parse.cc:888)
==1071== by 0x61F36C: handle_one_connection (sql_connect.cc:1136)
==1071== by 0x328F8062F6: start_thread (in /lib64/libpthread-2.5.so)
==1071== by 0x328ECD1E3C: clone (in /lib64/libc-2.5.so)
^ Found warnings in /s/bld/5152orig/mysql-test/var/log/mysqld.1.err
How to repeat:
I use centos 5.2, 64-bit x86, gcc 4.1.2, valgrind 3.2.1, unmodified mysql 5.1.52
./configure --enable-thread-safe-client --with-plugins=partition,csv,blackhole,myisam,heap,innodb_plugin,innobase --with-fast-mutexes --with-extra-charsets=all --with-debug C_EXTRA_FLAGS="-fno-omit-frame-pointer -fno-strict-aliasing -DHAVE_purify -DUNIV_DEBUG_VALGRIND -Wall" CFLAGS="-O0 -g" CXXFLAGS="-O0 -g"
mysql-test-run.pl --force --force-restart --valgrind