Bug #14997 Valgrind errors running the lowercase_view test
Submitted: 16 Nov 2005 20:21 Modified: 24 Nov 2005 13:30
Reporter: Guilhem Bichot Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Views Severity:S3 (Non-critical)
Version:5.1 OS:Linux (linux)
Assigned to: Evgeny Potemkin CPU Architecture:Any

[16 Nov 2005 20:21] Guilhem Bichot
Description:
observed on several machines (xeon EM64T, FC4, BUILD/compile-pentium64-valgrind-max, valgrind 3.0.1):
==4108== Thread 10:
==4108== Invalid write of size 1
==4108==    at 0x11B21D27: memset (mac_replace_strmem.c:464)
==4108==    by 0x8BC398: bitmap_init (my_bitmap.c:136)
==4108==    by 0x5EE089: check_view_insertability(THD*, st_table_list*) (sql_insert.cc:713)
==4108==    by 0x5EF680: check_insert_fields(THD*, st_table_list*, List<Item>&, List<Item>&, bo
ol) (sql_insert.cc:201)
==4108==    by 0x5F0846: mysql_prepare_insert(THD*, st_table_list*, st_table*, List<Item>&, Lis
t<Item>*, List<Item>&, List<Item>&, enum_duplicates, Item**, bool) (sql_insert.cc:892)
==4108==    by 0x5F2BA4: mysql_insert(THD*, st_table_list*, List<Item>&, List<List<Item> >&, Li
st<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:373)
==4108==    by 0x59AB5E: mysql_execute_command(THD*) (sql_parse.cc:3227)
==4108==    by 0x59EEEB: mysql_parse(THD*, char*, unsigned) (sql_parse.cc:5569)
==4108==    by 0x59F5E0: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_pars
e.cc:1691)
==4108==    by 0x5A0694: do_command(THD*) (sql_parse.cc:1492)
==4108==    by 0x5A12D0: handle_one_connection (sql_parse.cc:1137)
==4108==    by 0x121C097B: start_thread (in /lib64/libpthread-2.3.5.so)
==4108==    by 0x1276AC2D: clone (in /lib64/libc-2.3.5.so)
==4108==  Address 0x147AA649 is 0 bytes after a block of size 17 alloc'd
==4108==    at 0x11B1FE96: malloc (vg_replace_malloc.c:149)
==4108==    by 0x8AEF32: my_malloc (my_malloc.c:35)
==4108==    by 0x8AF7F3: alloc_root (my_alloc.c:154)
==4108==    by 0x5EDFE8: check_view_insertability(THD*, st_table_list*) (sql_class.h:723)
==4108==    by 0x5EF680: check_insert_fields(THD*, st_table_list*, List<Item>&, List<Item>&, bo
ol) (sql_insert.cc:201)
ol) (sql_insert.cc:201)
==4108==    by 0x5F0846: mysql_prepare_insert(THD*, st_table_list*, st_table*, List<Item>&, Lis
t<Item>*, List<Item>&, List<Item>&, enum_duplicates, Item**, bool) (sql_insert.cc:892)
==4108==    by 0x5F2BA4: mysql_insert(THD*, st_table_list*, List<Item>&, List<List<Item> >&, Li
st<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:373)
==4108==    by 0x59AB5E: mysql_execute_command(THD*) (sql_parse.cc:3227)
==4108==    by 0x59EEEB: mysql_parse(THD*, char*, unsigned) (sql_parse.cc:5569)
==4108==    by 0x59F5E0: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_pars
e.cc:1691)
==4108==    by 0x5A0694: do_command(THD*) (sql_parse.cc:1492)

==4108== Invalid write of size 1
==4108==    at 0x11B21D2F: memset (mac_replace_strmem.c:464)
==4108==    by 0x8BC398: bitmap_init (my_bitmap.c:136)
==4108==    by 0x5EE089: check_view_insertability(THD*, st_table_list*) (sql_insert.cc:713)
==4108==    by 0x5EF680: check_insert_fields(THD*, st_table_list*, List<Item>&, List<Item>&, bo
ol) (sql_insert.cc:201)
==4108==    by 0x5F0846: mysql_prepare_insert(THD*, st_table_list*, st_table*, List<Item>&, Lis
t<Item>*, List<Item>&, List<Item>&, enum_duplicates, Item**, bool) (sql_insert.cc:892)
==4108==    by 0x5F2BA4: mysql_insert(THD*, st_table_list*, List<Item>&, List<List<Item> >&, Li
st<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:373)
==4108==    by 0x59AB5E: mysql_execute_command(THD*) (sql_parse.cc:3227)
==4108==    by 0x59EEEB: mysql_parse(THD*, char*, unsigned) (sql_parse.cc:5569)
==4108==    by 0x59F5E0: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_pars
e.cc:1691)
==4108==    by 0x5A0694: do_command(THD*) (sql_parse.cc:1492)
==4108==    by 0x5A12D0: handle_one_connection (sql_parse.cc:1137)
==4108==    by 0x121C097B: start_thread (in /lib64/libpthread-2.3.5.so)
==4108==    by 0x1276AC2D: clone (in /lib64/libc-2.3.5.so)
==4108==  Address 0x147AA64A is 1 bytes after a block of size 17 alloc'd
==4108==    at 0x11B1FE96: malloc (vg_replace_malloc.c:149)
==4108==    by 0x8AEF32: my_malloc (my_malloc.c:35)
==4108==    by 0x8AF7F3: alloc_root (my_alloc.c:154)
==4108==    by 0x5EDFE8: check_view_insertability(THD*, st_table_list*) (sql_class.h:723)
==4108==    by 0x5EF680: check_insert_fields(THD*, st_table_list*, List<Item>&, List<Item>&, bo
ol) (sql_insert.cc:201)
==4108==    by 0x5F0846: mysql_prepare_insert(THD*, st_table_list*, st_table*, List<Item>&, Lis
t<Item>*, List<Item>&, List<Item>&, enum_duplicates, Item**, bool) (sql_insert.cc:892)
:                                       

etc etc.

How to repeat:
run the lowercase_view test with --valgrind (when I got the error I was running the full testsuite with --skip-ndb).
[24 Nov 2005 13:30] Guilhem Bichot
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Fixed by Monty in 5.1 in this cset:
ChangeSet@1.1963.2.2, 2005-11-24 06:15:35+02:00, monty@mysql.com
  Added bitmap_buffer_size()
  Removed valgrind warnings when using not aligned bitmap buffer size
  Added setting of thread_stack