LP #1334317: Suppression typo causing spurious MTR Valgrind failures
Description
Environment
Smart Checklist
Activity
lpjirasync January 24, 2018 at 7:22 AM
**Comment from Launchpad by: Valerii Kravchuk on: 26-06-2014 10:08:10
I can NOT reproduce this with 5.6:
openxs@ao756:~/dbs/p5.6v/mysql-test$ ./mysql-test-run --valgrind ctype_eucjpms Logging: ./mysql-test-run --valgrind ctype_eucjpms
2014-06-26 13:01:03 24313 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2014-06-26 13:01:03 24313 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
2014-06-26 13:01:03 24313 [Note] Plugin 'FEDERATED' is disabled.
2014-06-26 13:01:03 24313 [Note] Binlog end
2014-06-26 13:01:03 24313 [Note] Shutting down plugin 'CSV'
2014-06-26 13:01:03 24313 [Note] Shutting down plugin 'MyISAM'
MySQL Version 5.6.19
Turning on valgrind for all executables
Running valgrind with options " --show-reachable=yes "
Turning off --check-testcases to save time when valgrinding
Checking supported features...
SSL connections supported
binaries are debug compiled
Collecting tests...
Checking leftover processes...
Removing old var directory...
Creating var directory '/home/openxs/dbs/p5.6v/mysql-test/var'...
Installing system database...
==============================================================================
TEST RESULT TIME (ms) or COMMENT
--------------------------------------------------------------------------
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
main.ctype_eucjpms [ pass ] 291488
valgrind_report [ pass ]
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 291.488 of 353 seconds executing testcases
Completed: All 2 tests were successful.
Details
Details
Assignee
Reporter
Priority
Smart Checklist
Open Smart Checklist
Smart Checklist

**Reported in Launchpad by Laurynas Biveinis last update 13-07-2014 12:56:07
Copy of http://bugs.mysql.com/bug.php?id=73111:
[25 Jun 9:41] Laurynas Biveinis
Description:
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)
Affected tests: ctype_eucjpms, ctype_sjis, ctype_tis620 ctype_ujis ctype_ujis_ucs2 ctype_cp932_binlog_stm subselect sum_distinct, all in main suite.
How to repeat:
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
Suggested fix:
There are existing suppressions that attempt to address this, the closest one being
{
Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX / one
Memcheck:Param
write(buf)
obj:/libpthread.so
fun:my_write
...
fun:my_b_flush_io_cache
fun:_my_b_write
fun:Z10write_keysP13st_sort_paramPPhjP11st_io_cacheS4
fun:Z13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6
fun:_Z8filesortP3THDP5TABLEP13st_sort_fieldjP10SQL_SELECTybPy
}
It does not account for find_all_keys missing in the stacktrace, and write_keys needs slightly different mangling at least on my system. Changing it as follows fixes the issue.
=== modified file 'mysql-test/valgrind.supp'
— mysql-test/valgrind.supp 2012-02-14 07:11:28 +0000
+++ mysql-test/valgrind.supp 2014-06-25 09:16:58 +0000
@@ -892,8 +892,8 @@
...
fun:my_b_flush_io_cache
fun:_my_b_write
fun:Z*10write_keysP13st_sort_paramPPhjP11st_io_cacheS4
fun:Z*13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6
+ fun:ZL10write_keysP13st_sort_paramPPhjP11st_io_cacheS4
+ ...
fun:_Z8filesortP3THDP5TABLEP13st_sort_fieldjP10SQL_SELECTybPy
}
Legal PoliciesYour Privacy RightsTerms of UseContact Us