Commit graph

7 commits

Author SHA1 Message Date
Sergey Glukhov
d2db80c8d4 Bug#38999 valgrind warnings for update statement in function compare_record()
Valgrind warning happpens because of uninitialized null bytes.
In row_sel_push_cache_row_for_mysql() function we fill fetch cache
with necessary field values, row_sel_store_mysql_rec() is called
for this and leaves null bytes untouched.
Later row_sel_pop_cached_row_for_mysql() rewrites table record
buffer with uninited null bytes. We can see the problem from the
test case:
At 'SELECT...' we call row_sel_push...->row_sel_store...->row_sel_pop_cached...
chain which rewrites table->record[0] buffer with uninitialized null bytes.
When we call 'UPDATE...' statement, compare_record uses this buffer and
valgrind warning occurs.
The fix is to init null bytes with default values.
2010-06-09 16:07:34 +04:00
Vasil Dimov
0f913e0324 Disable main.ps_3innodb for valgrind tests since it results in known
failures, that are described in

Bug#38999 valgrind warnings for update statement in function compare_record()

At the time I am adding this the failures are:

main.ps_3innodb                          [ fail ]  Found warnings/errors in server log file!
        Test ended at 2010-05-20 01:17:34
line
==31559== Thread 11:
==31559== Conditional jump or move depends on uninitialised value(s)
==31559==    at 0x75C5BD: compare_record(st_table*) (sql_update.cc:35)
==31559==    by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486)
==31559==    by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835)
==31559==    by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198)
==31559==    by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583)
==31559==    by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258)
==31559==    by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529)
==31559==    by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272)
==31559==    by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986)
==31559==    by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233)
==31559==    by 0x6B0800: do_command(THD*) (sql_parse.cc:874)
==31559==    by 0x69CB46: handle_one_connection (sql_connect.cc:1134)
==31559==    by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so)
==31559==    by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so)
==31559== Conditional jump or move depends on uninitialised value(s)
==31559==    at 0x75C5D0: compare_record(st_table*) (sql_update.cc:35)
==31559==    by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486)
==31559==    by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835)
==31559==    by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198)
==31559==    by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583)
==31559==    by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258)
==31559==    by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529)
==31559==    by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272)
==31559==    by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986)
==31559==    by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233)
==31559==    by 0x6B0800: do_command(THD*) (sql_parse.cc:874)
==31559==    by 0x69CB46: handle_one_connection (sql_connect.cc:1134)
==31559==    by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so)
==31559==    by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so)
^ Found warnings in /export/home4/pb2/test/sb_3-1827397-1274300957.87/mysql-5.1.48-linux-x86_64-test/mysql-test/var-n_mix/log/mysqld.1.err
2010-05-20 16:27:35 +03:00
monty@mysql.com
3c12d0ae54 Added end marker for tests to make future merges easier 2005-07-28 03:22:47 +03:00
konstantin@mysql.com
d03f447f84 Results of WL#1856 "Conversion of client_test.c tests cases to mysqltest
if possible"
        - many new test cases
        - more and improved comments
      New files: t/ps_7ndb.test       test suite for NDB tables
                 r/ps_7ndb.result     expected results
                 include/ps_conv.inc  conversion test cases
+ review comments and fixes.
2004-09-25 19:08:02 +04:00
serg@serg.mylan
021242bc6c mysql_fix_privilege_tables.sh:
various fixes (for mysql-test-run at least):
  * accept --no-defaults
  * 4.0 compatible password handling (only it no other argumensts, only if doesn't start with --)
ps_3innodb.test:
  only run ps_3innodb.test if innodb is present
mysql-test-run.sh:
  it's --verbose, not --verbose=1
2004-07-06 16:29:26 +02:00
gordon@zero.local.lan
c87812d8e6 Added comments to the PS test files, to prevent modifications which may destroy the tests . 2004-07-02 20:01:34 +02:00
gordon@zero.local.lan
7071d062c9 WL#1564 Intensive test of prepared statements via 'mysqltest' 2004-07-01 16:30:29 +02:00