Comment 1 for bug 534361

Revision history for this message
Kristian Nielsen (knielsen) wrote :

Another reason to eliminate these valgrind errors is that it would make it easier to distinguish the ones that are actual bugs. For example, this one, from testcase pbxt.multi_update, looks like a real problem:

==19278== Invalid write of size 1
==19278== at 0x4C270D8: memset (mc_replace_strmem.c:586)
==19278== by 0xA50298: XTDatabaseLog::xlog_append(XTThread*, unsigned long, unsigned char*, unsigned long, unsigned char*, int, unsigned int*, long*) (xactlog_xt.cc:1112)
==19278== by 0xA519A9: xt_xlog_modify_table(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned char*, XTThread*) (xactlog_xt.cc:1657)
==19278== by 0xA3778A: tab_add_record(XTOpenTable*, XTTabRecInfo*, unsigned int) (table_xt.cc:4017)
==19278== by 0xA38214: xt_tab_new_record(XTOpenTable*, unsigned char*) (table_xt.cc:4380)
==19278== by 0xA0489A: ha_pbxt::write_row(unsigned char*) (ha_pbxt.cc:2645)
==19278== by 0x7D7B29: handler::ha_write_row(unsigned char*) (handler.cc:4647)
==19278== by 0x72ECDC: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1632)
==19278== by 0x733425: select_insert::send_data(List<Item>&) (sql_insert.cc:3212)
==19278== by 0x71AAC2: end_send(JOIN*, st_join_table*, bool) (sql_select.cc:12455)
==19278== by 0x71897D: evaluate_join_record(JOIN*, st_join_table*, int) (sql_select.cc:11638)
==19278== by 0x718616: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:11518)
==19278== by 0x71812A: do_select(JOIN*, List<Item>*, st_table*, Procedure*) (sql_select.cc:11268)
==19278== by 0x7013BE: JOIN::exec() (sql_select.cc:2292)
==19278== by 0x701B0F: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2486)
==19278== by 0x6F9E07: handle_select(THD*, st_lex*, select_result*, unsigned long) (sql_select.cc:279)
==19278== Address 0xf1c13f0 is 0 bytes after a block of size 1,049,088 alloc'd
==19278== at 0x4C25153: malloc (vg_replace_malloc.c:195)
==19278== by 0xA159D3: xt_malloc(XTThread*, unsigned long) (memory_xt.cc:101)
==19278== by 0xA4F2FB: XTDatabaseLog::xlog_setup(XTThread*, XTDatabase*, long, unsigned long, int) (xactlog_xt.cc:632)
==19278== by 0xA4A5D9: xt_xn_init_db(XTThread*, XTDatabase*) (xaction_xt.cc:1107)
==19278== by 0xA5BF89: xt_get_database(XTThread*, char*, int) (database_xt.cc:471)
==19278== by 0xA5C806: xt_open_database(XTThread*, char*, int) (database_xt.cc:639)
==19278== by 0xA0044D: xt_ha_open_database_of_table(XTThread*, XTPathStr*) (ha_pbxt.cc:512)
==19278== by 0xA09781: ha_pbxt::create(char const*, st_table*, st_ha_create_information*) (ha_pbxt.cc:5438)
==19278== by 0x7D4DB9: handler::ha_create(char const*, st_table*, st_ha_create_information*) (handler.cc:3397)
==19278== by 0x7D554D: ha_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, bool) (handler.cc:3604)
==19278== by 0x77BA6C: rea_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, List<Create_field>&, unsigned int, st_key*, handler*) (unireg.cc:414)
==19278== by 0x7F9972: mysql_create_table_no_lock(THD*, char const*, char const*, st_ha_create_information*, Alter_info*, bool, unsigned int) (sql_table.cc:3958)
==19278== by 0x7F9DD1: mysql_create_table(THD*, char const*, char const*, st_ha_create_information*, Alter_info*, bool, unsigned int) (sql_table.cc:4055)
==19278== by 0x68F38A: mysql_execute_command(THD*) (sql_parse.cc:2791)
==19278== by 0x6994CF: mysql_parse(THD*, char const*, unsigned int, char const**) (sql_parse.cc:6034)
==19278== by 0x68B804: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1247)