Bug #56381 | valgrind leak warning from --suite=innodb_plugin | ||
---|---|---|---|
Submitted: | 30 Aug 2010 18:45 | Modified: | 2 Feb 2013 13:58 |
Reporter: | Mark Callaghan | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: InnoDB Plugin storage engine | Severity: | S2 (Serious) |
Version: | 5.1.50 | OS: | Any |
Assigned to: | Marko Mäkelä | CPU Architecture: | Any |
Tags: | innodb, Leak, mtr, plugin, valgrind |
[30 Aug 2010 18:45]
Mark Callaghan
[30 Aug 2010 20:37]
Sveta Smirnova
Thank you for the report. Verified as described: 14 bytes in 1 blocks are indirectly lost in loss record 1 of 6 at 0x4A05809: malloc (vg_replace_malloc.c:149) by 0x5E36735: ??? by 0x5D898C0: ??? by 0x5DF8901: ??? by 0x5DB0558: ??? by 0x6D500A: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7328) by 0x5B8925: mysql_execute_command(THD*) (sql_parse.cc:2949) by 0x5BC1DA: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6032) by 0x5BC787: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260) by 0x5BDCA4: do_command(THD*) (sql_parse.cc:888) by 0x5AD06F: handle_one_connection (sql_connect.cc:1136) by 0x3429E061B4: start_thread (in /lib64/libpthread-2.5.so) by 0x34292CD39C: clone (in /lib64/libc-2.5.so) 2,048 bytes in 1 blocks are still reachable in loss record 4 of 6 at 0x4A05809: malloc (vg_replace_malloc.c:149) by 0x4A05883: realloc (vg_replace_malloc.c:306) by 0x3429E06D19: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.5.so) by 0x7E1818: my_thread_global_init (my_thr_init.c:115) by 0x7BD4EB: my_init (my_init.c:81) by 0x5A8F52: main (mysqld.cc:4331) 2,062 (224 direct, 1,838 indirect) bytes in 1 blocks are definitely lost in loss record 5 of 6 at 0x4A05809: malloc (vg_replace_malloc.c:149) by 0x5DC93FD: ??? by 0x5D897B5: ??? by 0x5DF8901: ??? by 0x5DB0558: ??? by 0x6D500A: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7328) by 0x5B8925: mysql_execute_command(THD*) (sql_parse.cc:2949) by 0x5BC1DA: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6032) by 0x5BC787: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260) by 0x5BDCA4: do_command(THD*) (sql_parse.cc:888) by 0x5AD06F: handle_one_connection (sql_connect.cc:1136) by 0x3429E061B4: start_thread (in /lib64/libpthread-2.5.so) by 0x34292CD39C: clone (in /lib64/libc-2.5.so) 1,824 bytes in 2 blocks are indirectly lost in loss record 6 of 6 at 0x4A05809: malloc (vg_replace_malloc.c:149) by 0x5DC93FD: ??? by 0x5DC951D: ??? by 0x5D89A67: ??? by 0x5DF8901: ??? by 0x5DB0558: ??? by 0x6D500A: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7328) by 0x5B8925: mysql_execute_command(THD*) (sql_parse.cc:2949) by 0x5BC1DA: mysql_parse(THD*, char*, unsigned, char const**) (sql_parse.cc:6032) by 0x5BC787: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1260) by 0x5BDCA4: do_command(THD*) (sql_parse.cc:888) by 0x5AD06F: handle_one_connection (sql_connect.cc:1136) by 0x3429E061B4: start_thread (in /lib64/libpthread-2.5.so) by 0x34292CD39C: clone (in /lib64/libc-2.5.so)
[30 Aug 2010 21:10]
Sveta Smirnova
Failed test: innodb_plugin.innodb-index
[31 Aug 2010 10:48]
Marko Mäkelä
Sorry, I cannot repeat any leaks on my development tree. All I see is ‘still reachable’ warnings for some objects outside InnoDB: ==3968== 52 bytes in 1 blocks are still reachable in loss record 2 of 6 ==3968== at 0x4023C4C: malloc (vg_replace_malloc.c:195) ==3968== by 0x40B7048: _mymalloc (safemalloc.c:137) ==3968== by 0x40B83FC: _my_strdup (safemalloc.c:559) ==3968== by 0x8051520: var_set(char const*, char const*, char const*, char const*) (mysqltest.cc:2103) ==3968== by 0x80515F2: var_set_string(char const*, char const*) (mysqltest.cc:2114) ==3968== by 0x805CC4F: main (mysqltest.cc:7782) … ==3968== 59 bytes in 1 blocks are still reachable in loss record 5 of 6 ==3968== at 0x4023C4C: malloc (vg_replace_malloc.c:195) ==3968== by 0x40B7048: _mymalloc (safemalloc.c:137) ==3968== by 0x40B83FC: _my_strdup (safemalloc.c:559) ==3968== by 0x8051520: var_set(char const*, char const*, char const*, char const*) (mysqltest.cc:2103) ==3968== by 0x80515F2: var_set_string(char const*, char const*) (mysqltest.cc:2114) ==3968== by 0x805CC3B: main (mysqltest.cc:7781) … ==3968== 240 bytes in 4 blocks are still reachable in loss record 6 of 6 ==3968== at 0x4023C4C: malloc (vg_replace_malloc.c:195) ==3968== by 0x40B7048: _mymalloc (safemalloc.c:137) ==3968== by 0x40B769F: _myrealloc (safemalloc.c:249) ==3968== by 0x40BD229: dynstr_append_mem (string.c:106) ==3968== by 0x804E671: do_eval(st_dynamic_string*, char const*, char const*, char) (mysqltest.cc:814) ==3968== by 0x804EE62: check_command_args(st_command*, char const*, command_arg const*, int, char) (mysqltest.cc:1012) ==3968== by 0x8056F80: do_close_connection(st_command*) (mysqltest.cc:4761) ==3968== by 0x805D3EB: main (mysqltest.cc:7958) Before I go to fetch and compile the 5.1.50 source, can you please try to compile the InnoDB Plugin statically (swap the relevant parts of storage/innodb_plugin/plug.in and storage/innobase/plug.in, or something) to get a resolved stack trace for the InnoDB functions?
[31 Aug 2010 11:05]
Marko Mäkelä
In Bug #55720, there is a innodb_swap_builtin_plugin.patch attached as http://bugs.mysql.com/file.php?id=15387
[31 Aug 2010 16:13]
Mark Callaghan
From 5.1.50 + the facebook patch, the bug was found/filed for unmodified 5.1.50 ==3649== 14 bytes in 1 blocks are still reachable in loss record 1 of 3 ==3649== at 0x4A05809: malloc (vg_replace_malloc.c:149) ==3649== by 0x7FE3B2: ut_malloc_low (ut0mem.c:106) ==3649== by 0x83626E: dict_mem_table_create (dict0mem.c:71) ==3649== by 0x7D17EF: row_merge_create_temporary_table (row0merge.c:2249) ==3649== by 0x790835: ha_innobase::add_index(st_table*, st_key*, unsigned) (handler0alter.cc:741) ==3649== by 0x6E1A1F: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7328) ==3649== by 0x5C25DB: mysql_execute_command(THD*, unsigned long long*) (sql_parse.cc:3148) ==3649== by 0x5C5BE3: mysql_parse(THD*, char*, unsigned, char const**, unsigned long long*) (sql_parse.cc:6342) ==3649== by 0x5C6B8B: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1311) ==3649== by 0x5C7D16: do_command(THD*) (sql_parse.cc:934) ==3649== by 0x5B596B: handle_one_connection (sql_connect.cc:1184) ==3649== by 0x328F8062F6: start_thread (in /lib64/libpthread-2.5.so) ==3649== by 0x328ECD1E3C: clone (in /lib64/libc-2.5.so) ==3649== ==3649== ==3649== 2,528 bytes in 3 blocks are still reachable in loss record 3 of 3 ==3649== at 0x4A05809: malloc (vg_replace_malloc.c:149) ==3649== by 0x7A83FF: mem_heap_create_block (mem0mem.c:333) ==3649== by 0x7A85C2: mem_heap_add_block (mem0mem.c:446) ==3649== by 0x7A8A60: mem_heap_alloc (mem0mem.ic:186) ==3649== by 0x7A8E8B: mem_heap_zalloc (mem0mem.ic:154) ==3649== by 0x836244: dict_mem_table_create (dict0mem.c:66) ==3649== by 0x7D17EF: row_merge_create_temporary_table (row0merge.c:2249) ==3649== by 0x790835: ha_innobase::add_index(st_table*, st_key*, unsigned) (handler0alter.cc:741) ==3649== by 0x6E1A1F: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:7328) ==3649== by 0x5C25DB: mysql_execute_command(THD*, unsigned long long*) (sql_parse.cc:3148) ==3649== by 0x5C5BE3: mysql_parse(THD*, char*, unsigned, char const**, unsigned long long*) (sql_parse.cc:6342) ==3649== by 0x5C6B8B: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1311) ==3649== by 0x5C7D16: do_command(THD*) (sql_parse.cc:934) ==3649== by 0x5B596B: handle_one_connection (sql_connect.cc:1184) ==3649== by 0x328F8062F6: start_thread (in /lib64/libpthread-2.5.so) ==3649== by 0x328ECD1E3C: clone (in /lib64/libc-2.5.so)
[10 Nov 2010 13:31]
Marko Mäkelä
This could be a duplicate of Bug #56947, which should be fixed in 5.1.53.
[30 Nov 2010 20:56]
Sveta Smirnova
I can not repeat exactly same error, but get other valgrind warnings like in bug #51792.
[2 Feb 2013 13:58]
MySQL Verification Team
cant repeat on 5.5.29. The servers were restarted 22 times Spent 582.469 of 861 seconds executing testcases Completed: All 93 tests were successful. 10 tests were skipped, 6 by the test itself.