Bug #56651 Valgrind warnings for memory leak in ALTER TABLE

Submitted: 8 Sep 2010 13:56 Modified: 21 Jan 2011 13:15
Reporter: Sven Sandberg Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: DDL Severity:S2 (Serious)
Version:trunk, 5.6 OS:Any
Assigned to: Jon Olav Hauglid CPU Architecture:Any
Tags: ALTER TABLE, memory leak, valgrind

[8 Sep 2010 13:56] Sven Sandberg
Description:
This is one of several Valgrind warnings for trunk-bugfixing in pb2 at https://central.sun.net/http://pb2.norway.sun.com/?action=archive_download&archive_id=2239... :

worker[2] Valgrind report from /export/home2/pb2/test/sb_0-2236760-1283495420.63/mysql-5.6.1-m4-linux-x86_64-test/mysql-test/var-n_mix/2/log/mysqld.1.err after tests:
 main.not_embedded_server main.not_partition main.null main.null_key main.openssl_1 main.outfile main.outfile_loaddata main.overflow main.packet main.parser main.parser_not_embedded main.parser_precedence main.parser_stack main.partition_archive main.partition_blackhole main.partition_bug18198 main.partition_charset main.partition_column main.partition_column_prune main.partition_csv main.partition_datatype main.partition_debug_sync main.partition_error main.partition_key_cache main.partition_range main.partition_rename_longfilename main.partition_symlink main.partition_sync main.partition_truncate main.partition_utf8 main.perror-win main.profiling main.ps_10nestset main.ps_11bugs main.ps_1general main.ps_2myisam
------------------------------------------------------------
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 49 from 2)
malloc/free: in use at exit: 1,864 bytes in 7 blocks.
malloc/free: 1,121,905 allocs, 1,121,898 frees, 1,075,400,319 bytes allocated.
For counts of detected errors, rerun with: -v
searching for pointers to 7 not-freed blocks.
checked 4,217,984 bytes.

40 bytes in 1 blocks are definitely lost in loss record 3 of 7
   at 0x4A05809: malloc (vg_replace_malloc.c:149)
   by 0xA72A64: my_malloc (my_malloc.c:38)
   by 0x62C723: String::real_alloc(unsigned) (sql_string.cc:44)
   by 0x54ACF3: String::alloc(unsigned) (sql_string.h:217)
   by 0x7A6684: Item_extract::fix_length_and_dec() (item_timefunc.cc:2341)
   by 0x76DF5F: Item_func::fix_fields(THD*, Item**) (item_func.cc:219)
   by 0x81EF87: fix_fields_part_func(THD*, Item*, TABLE*, bool, bool) (sql_partition.cc:1116)
   by 0x81F9BF: fix_partition_func(THD*, TABLE*, bool) (sql_partition.cc:1818)
   by 0x660208: open_table_from_share(THD*, TABLE_SHARE*, char const*, unsigned, unsigned, unsigned, TABLE*, bool) (table.cc:1947)
   by 0x7122DA: ha_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, bool) (handler.cc:3764)
   by 0x670ECC: rea_create_table(THD*, char const*, char const*, char const*, st_ha_create_information*, List<Create_field>&, unsigned, st_key*, handler*) (unireg.cc:463)
   by 0x639597: mysql_create_table_no_lock(THD*, char const*, char const*, st_ha_create_information*, Alter_info*, bool, unsigned, bool*) (sql_table.cc:4396)
   by 0x63BB9A: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned, st_order*, bool) (sql_table.cc:6468)
   by 0x830034: Alter_table_statement::execute(THD*) (sql_alter.cc:104)
   by 0x5C1FC4: mysql_execute_command(THD*) (sql_parse.cc:4407)
   by 0x5C2581: mysql_parse(THD*, char*, unsigned, Parser_state*) (sql_parse.cc:5586)

This seems to be a memory leak in the implementation of ALTER TABLE.

How to repeat:
Read the log.
[8 Sep 2010 13:59] Sven Sandberg
See also BUG#56652.
[16 Sep 2010 11:28] Susanne Ebrecht
There is nothing what I could add here. Set verified by Sven.
[21 Jan 2011 13:15] Jon Olav Hauglid
No longer repeatable with current mysql-trunk.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.043 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.