Bug #61986 | Valgrind errors in various ctype tests 5.5 rev 3477 | ||
---|---|---|---|
Submitted: | 26 Jul 2011 14:30 | Modified: | 11 Apr 2018 11:55 |
Reporter: | Laurynas Biveinis (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Charsets | Severity: | S3 (Non-critical) |
Version: | 5.5.16 | OS: | Linux |
Assigned to: | CPU Architecture: | Any |
[26 Jul 2011 14:30]
Laurynas Biveinis
[1 Aug 2011 8:10]
MySQL Verification Team
I reported at least one occurrence of this bug report in: Bug 12819417 - UTF16: UNINITIALIZED VALUE CREATED IN MY_STRNTOD_MB2_OR_MB4 USED IN MY_STRTOD The testcase was: drop table if exists `t`; create table `t`(`a` text character set utf16 collate utf16_turkish_ci not null)engine=myisam; insert into `t` values (0x0030002E0032003800390031); select 1 from `t` t91 where `a` >= 1;
[10 Aug 2011 18:04]
Sveta Smirnova
Thank you for the report. Verified as described using compile options provided in bug #61985
[25 Jun 2014 8:37]
Laurynas Biveinis
Still happens with 5.5.38, Ubuntu 14.04 Server built with -DWITH_DEBUG=ON -DWITH_VALGRIND=ON -DCMAKE_C_FLAGS=-DHAVE_purify -DCMAKE_CXX_FLAGS=-DHAVE_purify -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF -DENABLE_DTRACE=OFF -DWITH_EXAMPLE_STORAGE_ENGINE=1 -DWITH_SSL=system main.ctype_eucjpms [ fail ] Found warnings/errors in server log file! Test ended at 2014-06-25 11:34:38 line ==1327== Thread 13: ==1327== Syscall param write(buf) points to uninitialised byte(s) ==1327== at 0x504835D: ??? (syscall-template.S:81) ==1327== by 0x7E52DE: my_write (my_write.c:43) ==1327== by 0x7CDD16: my_b_flush_io_cache (mysql_file.h:1134) ==1327== by 0x7CE390: _my_b_write (mf_iocache.c:1549) ==1327== by 0x6A06D1: write_keys(st_sort_param*, unsigned char**, unsigned int, st_io_cache*, st_io_cache*) (filesort.cc:760) ==1327== by 0x6A29CC: filesort(THD*, TABLE*, st_sort_field*, unsigned int, SQL_SELECT*, unsigned long long, bool, unsigned long long*) (filesort.cc:662) ==1327== by 0x5BDD1F: create_sort_index(THD*, JOIN*, st_order*, unsigned long long, unsigned long long, bool) (sql_select.cc:14254) ==1327== by 0x5D0C4C: JOIN::exec() (sql_select.cc:2354) ==1327== by 0x5CAD39: 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:2604) ==1327== by 0x5CAF30: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:297) ==1327== by 0x5815B6: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:4625) ==1327== by 0x587A80: mysql_execute_command(THD*) (sql_parse.cc:2176) ==1327== by 0x58F20B: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5662) ==1327== by 0x590A96: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1038) ==1327== by 0x592905: do_command(THD*) (sql_parse.cc:773) ==1327== by 0x63DEAD: do_handle_one_connection(THD*) (sql_connect.cc:862) ==1327== Address 0x10abaf57 is 23 bytes inside a block of size 65,536 alloc'd ==1327== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==1327== by 0x7E13D4: my_malloc (my_malloc.c:38) ==1327== by 0x7CD4E1: init_io_cache (mf_iocache.c:232) ==1327== by 0x7CAB06: open_cached_file (mf_cache.c:69) ==1327== by 0x6A0640: write_keys(st_sort_param*, unsigned char**, unsigned int, st_io_cache*, st_io_cache*) (filesort.cc:750) ==1327== by 0x6A29CC: filesort(THD*, TABLE*, st_sort_field*, unsigned int, SQL_SELECT*, unsigned long long, bool, unsigned long long*) (filesort.cc:662) ==1327== by 0x5BDD1F: create_sort_index(THD*, JOIN*, st_order*, unsigned long long, unsigned long long, bool) (sql_select.cc:14254) ==1327== by 0x5D0C4C: JOIN::exec() (sql_select.cc:2354) ==1327== by 0x5CAD39: 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:2604) ==1327== by 0x5CAF30: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:297) ==1327== by 0x5815B6: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:4625) ==1327== by 0x587A80: mysql_execute_command(THD*) (sql_parse.cc:2176) ==1327== by 0x58F20B: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:5662) ==1327== by 0x590A96: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1038) ==1327== by 0x592905: do_command(THD*) (sql_parse.cc:773) ==1327== by 0x63DEAD: do_handle_one_connection(THD*) (sql_connect.cc:862)
[25 Jun 2014 8:39]
Laurynas Biveinis
Hm, even though it is a ctype test, the Valgrind stacktrace is different. Probably a wrong bug to comment on.
[11 Apr 2018 11:55]
Paul DuBois
Posted by developer: Fixed in 5.5.26. Code cleanup. No changelog entry needed.