Bug #21357 Valgrind 'invalid read' warning in test case partition
Submitted: 31 Jul 2006 7:42 Modified: 2 Sep 2006 4:58
Reporter: Kristian Nielsen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Partitions Severity:S3 (Non-critical)
Version:5.1.12 OS:Linux (Linux x86_64)
Assigned to: Mikael Ronström CPU Architecture:Any

[31 Jul 2006 7:42] Kristian Nielsen
Description:
There is a Valgrind error reported in the test case 'partition'. It looks closely related to BUG#20893 (same stack trace), maybe the fix for that bug was incomplete.

VALGRIND: 'Invalid read of size 8'
    COUNT: 1
    FUNCTION: ha_partition::change_partitions(st_ha_create_information*,    FILES:    master.err
    TESTS:    partition
    STACK: at 0x6CEF27: ha_partition::change_partitions(st_ha_create_information*, char const*, unsigned long*, unsigned long*, void const*, unsigned) (ha_partition.cc:1347)
             by 0x549A00: mysql_change_partitions(st_lock_param_type*) (sql_partition.cc:4719)
             by 0x5464B0: fast_alter_partition_table(THD*, st_table*, st_alter_info*, st_ha_create_information*, st_table_list*, List<create_field>*, List<Key>*, char*, char const*, unsigned) (sql_partition.cc:6044)
             by 0x71AAF4: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, st_table_list*, List<create_field>&, List<Key>&, unsigned, st_order*, bool, st_alter_info*, bool) (sql_table.cc:5709)
             by 0x6049AA: mysql_execute_command(THD*) (sql_parse.cc:3148)
             by 0x60B51F: mysql_parse(THD*, char*, unsigned) (sql_parse.cc:6103)
             by 0x602710: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1830)
             by 0x6021F6: do_command(THD*) (sql_parse.cc:1614)
             by 0x601688: handle_one_connection (sql_parse.cc:1228)
             by 0x4C37C63: start_thread (in /lib64/tls/libpthread-0.60.so)
             by 0x52F3242: clone (in /lib64/tls/libc-2.3.2.so)
           Address 0x750A878 is 0 bytes after a block of size 40 alloc'd
             at 0x4A18B63: malloc (vg_replace_malloc.c:149)
             by 0x9DCEAE: my_malloc (my_malloc.c:35)
             by 0x9DD7F2: alloc_root (my_alloc.c:154)
             by 0x6CFE61: ha_partition::create_handlers(st_mem_root*) (ha_partition.cc:1972)
             by 0x6D054C: ha_partition::get_from_handler_file(char const*, st_mem_root*) (ha_partition.cc:2137)
             by 0x6CD094: ha_partition::initialise_partition(st_mem_root*) (ha_partition.cc:347)
             by 0x6D5912: partition_create_handler(st_table_share*, st_mem_root*) (ha_partition.cc:105)
             by 0x6BEB75: get_new_handler(st_table_share*, st_mem_root*, handlerton*) (handler.cc:248)
             by 0x635FB3: open_table_from_share(THD*, st_table_share*, char const*, unsigned, unsigned, unsigned, st_table*, bool) (table.cc:1348)
             by 0x632C80: open_unireg_entry(THD*, st_table*, st_table_list*, char const*, char*, unsigned, st_mem_root*) (sql_base.cc:2750)
             by 0x62CC73: open_table(THD*, st_table_list*, st_mem_root*, bool*, unsigned) (sql_base.cc:2058)
             by 0x62DDD8: open_ltable(THD*, st_table_list*, thr_lock_type) (sql_base.cc:3102)
             by 0x71926B: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, st_table_list*, List<create_field>&, List<Key>&, unsigned, st_order*, bool, st_alter_info*, bool) (sql_table.cc:5027)
             by 0x6049AA: mysql_execute_command(THD*) (sql_parse.cc:3148)
             by 0x60B51F: mysql_parse(THD*, char*, unsigned) (sql_parse.cc:6103)
             by 0x602710: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1830)

How to repeat:
mysql-test-run.pl --valgrind-all partition
[31 Aug 2006 20:39] Mikael Ronström
fixed in mysql-5.1-kt team tree
[1 Sep 2006 7:53] Mikael Ronström
Patch will appear in 5.1.12
[2 Sep 2006 4:58] Jon Stephens
Documented bugfix in 5.1.12 changelog.