[MDEV-11188] rpl.rpl_parallel_partition fails with valgrind warnings in buildbot and outside Created: 2016-10-31  Updated: 2016-11-04  Resolved: 2016-11-01

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - XtraDB
Affects Version/s: 10.0
Fix Version/s: 10.0.29, 10.1.20

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: upstream

Issue Links:
Relates
relates to MDEV-7069 Fix buildbot failures in main server ... Stalled

 Description   

rpl.rpl_parallel_partition 'mix,xtradb'  [ fail ]  Found warnings/errors in server log file!
        Test ended at 2016-10-31 04:24:31
line
==30148== Thread 22:
==30148== Conditional jump or move depends on uninitialised value(s)
==30148==    at 0xA30C00: innobase_create_zip_dict_references(TABLE const*, unsigned long, unsigned long*, trx_t*) (ha_innodb.cc:6010)
==30148==    by 0xA3AA57: ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*) (ha_innodb.cc:11380)
==30148==    by 0x849311: handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*) (handler.cc:4339)
==30148==    by 0x84A1CF: ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*) (handler.cc:4708)
==30148==    by 0x741214: rea_create_table(THD*, st_mysql_const_unsigned_lex_string*, char const*, char const*, char const*, HA_CREATE_INFO*, handler*, bool) (unireg.cc:378)
==30148==    by 0x6FADB5: create_table_impl(THD*, char const*, char const*, char const*, char const*, char const*, HA_CREATE_INFO*, Alter_info*, int, bool*, st_key**, unsigned int*, st_mysql_const_unsigned_lex_string*) (sql_table.cc:4851)
==30148==    by 0x6FB2B0: mysql_create_table_no_lock(THD*, char const*, char const*, HA_CREATE_INFO*, Alter_info*, bool*, int) (sql_table.cc:4965)
==30148==    by 0x6FB4F2: mysql_create_table(THD*, TABLE_LIST*, HA_CREATE_INFO*, Alter_info*) (sql_table.cc:5026)
==30148==    by 0x64C1F9: mysql_execute_command(THD*) (sql_parse.cc:3038)
==30148==    by 0x6557C7: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6576)
==30148==    by 0x6482C7: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1309)
==30148==    by 0x64758A: do_command(THD*) (sql_parse.cc:999)
==30148==    by 0x76AF7D: do_handle_one_connection(THD*) (sql_connect.cc:1378)
==30148==    by 0x76ACEF: handle_one_connection (sql_connect.cc:1293)
==30148==    by 0xA19901: pfs_spawn_thread (pfs.cc:1860)
==30148==    by 0x4E3D0A3: start_thread (pthread_create.c:309)
==30148== Syscall param pwrite64(buf) points to uninitialised byte(s)
==30148==    at 0x4E44313: ??? (syscall-template.S:81)
==30148==    by 0xABD6D3: os_file_pwrite(int, void const*, unsigned long, unsigned long) (os0file.cc:2819)
==30148==    by 0xABDAF7: os_file_write_func(char const*, int, void const*, unsigned long, unsigned long) (os0file.cc:3256)
==30148==    by 0xABACCC: pfs_os_file_write_func(char const*, int, void const*, unsigned long, unsigned long, char const*, unsigned long) (os0file.ic:328)
==30148==    by 0xABFD76: os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*) (os0file.cc:4867)
==30148==    by 0xC760A0: pfs_os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*, char const*, unsigned long) (os0file.ic:230)
==30148==    by 0xC82EC4: _fil_io(unsigned long, bool, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, void*, void*, trx_t*) (fil0fil.cc:5723)
==30148==    by 0xA9CED9: log_group_write_buf(log_group_t*, unsigned char*, unsigned long, unsigned long, unsigned long) (log0log.cc:1513)
==30148==    by 0xA9D4F3: log_write_up_to(unsigned long, unsigned long, unsigned long) (log0log.cc:1703)
==30148==    by 0xBB8A62: trx_flush_log_if_needed_low(unsigned long, trx_t*) (trx0trx.cc:1336)
==30148==    by 0xBB8ACF: trx_flush_log_if_needed(unsigned long, trx_t*) (trx0trx.cc:1360)
==30148==    by 0xBB91ED: trx_commit_in_memory(trx_t*, unsigned long) (trx0trx.cc:1503)
==30148==    by 0xBB97F7: trx_commit_low(trx_t*, mtr_t*) (trx0trx.cc:1621)
==30148==    by 0xBB9868: trx_commit(trx_t*) (trx0trx.cc:1642)
==30148==    by 0xC3DC5C: dict_create_add_foreigns_to_dictionary(std::set<dict_foreign_t*, dict_foreign_compare, std::allocator<dict_foreign_t*> > const&, dict_table_t const*, trx_t*) (dict0crea.cc:1805)
==30148==    by 0xC4D31B: dict_create_foreign_constraints_low(trx_t*, mem_block_info_t*, charset_info_st*, char const*, char const*, unsigned long) (dict0dict.cc:4627)
==30148==  Address 0xbe7da59 is 2,112,025 bytes inside a block of size 8,388,640 alloc'd
==30148==    at 0x4C28CF0: malloc (vg_replace_malloc.c:297)
==30148==    by 0xBC4248: ut_malloc_low(unsigned long, unsigned long) (ut0mem.cc:117)
==30148==    by 0xAB392F: mem_pool_create(unsigned long) (mem0pool.cc:231)
==30148==    by 0xAB1E29: mem_init(unsigned long) (mem0dbg.cc:177)
==30148==    by 0xB7F152: srv_general_init() (srv0srv.cc:1225)
==30148==    by 0xB7F266: srv_boot() (srv0srv.cc:1272)
==30148==    by 0xB88F3D: innobase_start_or_create_for_mysql() (srv0start.cc:1947)
==30148==    by 0xA2E744: innobase_init(void*) (ha_innodb.cc:4133)
==30148==    by 0x8414AB: ha_initialize_handlerton(st_plugin_int*) (handler.cc:501)
==30148==    by 0x65F0EE: plugin_initialize(st_mem_root*, st_plugin_int*, int*, char**, bool) (sql_plugin.cc:1379)
==30148==    by 0x65F919: plugin_init(int*, char**, int) (sql_plugin.cc:1602)
==30148==    by 0x58E544: init_server_components() (mysqld.cc:4836)
==30148==    by 0x58F57D: mysqld_main(int, char**) (mysqld.cc:5429)
==30148==    by 0x585BC5: main (main.cc:25)
==30148== Thread 13:
==30148== Syscall param io_submit(PWRITE) points to uninitialised byte(s)
==30148==    at 0x5052737: io_submit (in /lib/x86_64-linux-gnu/libaio.so.1.0.1)
==30148==    by 0xABFB6E: os_aio_linux_dispatch(os_aio_array_t*, os_aio_slot_t*) (os0file.cc:4772)
==30148==    by 0xAC00E2: os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*) (os0file.cc:4966)
==30148==    by 0xC760A0: pfs_os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*, char const*, unsigned long) (os0file.ic:230)
==30148==    by 0xC82EC4: _fil_io(unsigned long, bool, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, void*, void*, trx_t*) (fil0fil.cc:5723)
==30148==    by 0xC18C24: buf_dblwr_write_block_to_datafile(buf_page_t const*, bool) (buf0dblwr.cc:813)
==30148==    by 0xC1905A: buf_dblwr_flush_buffered_writes() (buf0dblwr.cc:952)
==30148==    by 0xC21EFD: buf_flush_common(buf_flush_t, unsigned long) (buf0flu.cc:1819)
==30148==    by 0xC2262D: buf_flush_list(unsigned long, unsigned long, unsigned long*) (buf0flu.cc:2077)
==30148==    by 0xC22E9A: page_cleaner_do_flush_batch(unsigned long, unsigned long) (buf0flu.cc:2348)
==30148==    by 0xC24111: buf_flush_page_cleaner_thread (buf0flu.cc:2731)
==30148==    by 0x4E3D0A3: start_thread (pthread_create.c:309)
==30148==    by 0x6CB787C: clone (clone.S:111)
==30148==  Address 0xca90000 is not stack'd, malloc'd or (recently) free'd
==30148== Thread 22:
==30148== Conditional jump or move depends on uninitialised value(s)
==30148==    at 0xA30C00: innobase_create_zip_dict_references(TABLE const*, unsigned long, unsigned long*, trx_t*) (ha_innodb.cc:6010)
==30148==    by 0xA3AA57: ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*) (ha_innodb.cc:11380)
==30148==    by 0x849311: handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*) (handler.cc:4339)
==30148==    by 0xE279EE: ha_partition::create(char const*, TABLE*, HA_CREATE_INFO*) (ha_partition.cc:735)
==30148==    by 0x849311: handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*) (handler.cc:4339)
==30148==    by 0x84A1CF: ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*) (handler.cc:4708)
==30148==    by 0x7048E1: mysql_alter_table(THD*, char*, char*, HA_CREATE_INFO*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool) (sql_table.cc:8940)
==30148==    by 0x7700CA: Sql_cmd_alter_table::execute(THD*) (sql_alter.cc:312)
==30148==    by 0x652391: mysql_execute_command(THD*) (sql_parse.cc:5115)
==30148==    by 0x6557C7: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6576)
==30148==    by 0x6482C7: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1309)
==30148==    by 0x64758A: do_command(THD*) (sql_parse.cc:999)
==30148==    by 0x76AF7D: do_handle_one_connection(THD*) (sql_connect.cc:1378)
==30148==    by 0x76ACEF: handle_one_connection (sql_connect.cc:1293)
==30148==    by 0xA19901: pfs_spawn_thread (pfs.cc:1860)
==30148==    by 0x4E3D0A3: start_thread (pthread_create.c:309)
^ Found warnings in /data/src/10.0-bug/mysql-test/var/log/mysqld.1.err
ok
line
==30150== Thread 33:
==30150== Conditional jump or move depends on uninitialised value(s)
==30150==    at 0xA30C00: innobase_create_zip_dict_references(TABLE const*, unsigned long, unsigned long*, trx_t*) (ha_innodb.cc:6010)
==30150==    by 0xA3AA57: ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*) (ha_innodb.cc:11380)
==30150==    by 0x849311: handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*) (handler.cc:4339)
==30150==    by 0x84A1CF: ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*) (handler.cc:4708)
==30150==    by 0x741214: rea_create_table(THD*, st_mysql_const_unsigned_lex_string*, char const*, char const*, char const*, HA_CREATE_INFO*, handler*, bool) (unireg.cc:378)
==30150==    by 0x6FADB5: create_table_impl(THD*, char const*, char const*, char const*, char const*, char const*, HA_CREATE_INFO*, Alter_info*, int, bool*, st_key**, unsigned int*, st_mysql_const_unsigned_lex_string*) (sql_table.cc:4851)
==30150==    by 0x6FB2B0: mysql_create_table_no_lock(THD*, char const*, char const*, HA_CREATE_INFO*, Alter_info*, bool*, int) (sql_table.cc:4965)
==30150==    by 0x6FB4F2: mysql_create_table(THD*, TABLE_LIST*, HA_CREATE_INFO*, Alter_info*) (sql_table.cc:5026)
==30150==    by 0x64C1F9: mysql_execute_command(THD*) (sql_parse.cc:3038)
==30150==    by 0x6557C7: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6576)
==30150==    by 0x92F316: Query_log_event::do_apply_event(rpl_group_info*, char const*, unsigned int) (log_event.cc:4363)
==30150==    by 0x92E49E: Query_log_event::do_apply_event(rpl_group_info*) (log_event.cc:4056)
==30150==    by 0x5BDD8F: Log_event::apply_event(rpl_group_info*) (log_event.h:1360)
==30150==    by 0x5B46C1: apply_event_and_update_pos(Log_event*, THD*, rpl_group_info*, rpl_parallel_thread*) (slave.cc:3297)
==30150==    by 0x7C96A7: rpt_handle_event(rpl_parallel_thread::queued_event*, rpl_parallel_thread*) (rpl_parallel.cc:52)
==30150==    by 0x7CBE37: handle_rpl_parallel_thread (rpl_parallel.cc:1201)
==30150== Syscall param pwrite64(buf) points to uninitialised byte(s)
==30150==    at 0x4E44313: ??? (syscall-template.S:81)
==30150==    by 0xABD6D3: os_file_pwrite(int, void const*, unsigned long, unsigned long) (os0file.cc:2819)
==30150==    by 0xABDAF7: os_file_write_func(char const*, int, void const*, unsigned long, unsigned long) (os0file.cc:3256)
==30150==    by 0xABACCC: pfs_os_file_write_func(char const*, int, void const*, unsigned long, unsigned long, char const*, unsigned long) (os0file.ic:328)
==30150==    by 0xABFD76: os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*) (os0file.cc:4867)
==30150==    by 0xC760A0: pfs_os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*, char const*, unsigned long) (os0file.ic:230)
==30150==    by 0xC82EC4: _fil_io(unsigned long, bool, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, void*, void*, trx_t*) (fil0fil.cc:5723)
==30150==    by 0xA9CED9: log_group_write_buf(log_group_t*, unsigned char*, unsigned long, unsigned long, unsigned long) (log0log.cc:1513)
==30150==    by 0xA9D4F3: log_write_up_to(unsigned long, unsigned long, unsigned long) (log0log.cc:1703)
==30150==    by 0xBB8A62: trx_flush_log_if_needed_low(unsigned long, trx_t*) (trx0trx.cc:1336)
==30150==    by 0xBB8ACF: trx_flush_log_if_needed(unsigned long, trx_t*) (trx0trx.cc:1360)
==30150==    by 0xBB91ED: trx_commit_in_memory(trx_t*, unsigned long) (trx0trx.cc:1503)
==30150==    by 0xBB97F7: trx_commit_low(trx_t*, mtr_t*) (trx0trx.cc:1621)
==30150==    by 0xBB9868: trx_commit(trx_t*) (trx0trx.cc:1642)
==30150==    by 0xC3DC5C: dict_create_add_foreigns_to_dictionary(std::set<dict_foreign_t*, dict_foreign_compare, std::allocator<dict_foreign_t*> > const&, dict_table_t const*, trx_t*) (dict0crea.cc:1805)
==30150==    by 0xC4D31B: dict_create_foreign_constraints_low(trx_t*, mem_block_info_t*, charset_info_st*, char const*, char const*, unsigned long) (dict0dict.cc:4627)
==30150==  Address 0xbe7d659 is 2,111,001 bytes inside a block of size 8,388,640 alloc'd
==30150==    at 0x4C28CF0: malloc (vg_replace_malloc.c:297)
==30150==    by 0xBC4248: ut_malloc_low(unsigned long, unsigned long) (ut0mem.cc:117)
==30150==    by 0xAB392F: mem_pool_create(unsigned long) (mem0pool.cc:231)
==30150==    by 0xAB1E29: mem_init(unsigned long) (mem0dbg.cc:177)
==30150==    by 0xB7F152: srv_general_init() (srv0srv.cc:1225)
==30150==    by 0xB7F266: srv_boot() (srv0srv.cc:1272)
==30150==    by 0xB88F3D: innobase_start_or_create_for_mysql() (srv0start.cc:1947)
==30150==    by 0xA2E744: innobase_init(void*) (ha_innodb.cc:4133)
==30150==    by 0x8414AB: ha_initialize_handlerton(st_plugin_int*) (handler.cc:501)
==30150==    by 0x65F0EE: plugin_initialize(st_mem_root*, st_plugin_int*, int*, char**, bool) (sql_plugin.cc:1379)
==30150==    by 0x65F919: plugin_init(int*, char**, int) (sql_plugin.cc:1602)
==30150==    by 0x58E544: init_server_components() (mysqld.cc:4836)
==30150==    by 0x58F57D: mysqld_main(int, char**) (mysqld.cc:5429)
==30150==    by 0x585BC5: main (main.cc:25)
==30150== Thread 13:
==30150== Syscall param io_submit(PWRITE) points to uninitialised byte(s)
==30150==    at 0x5052737: io_submit (in /lib/x86_64-linux-gnu/libaio.so.1.0.1)
==30150==    by 0xABFB6E: os_aio_linux_dispatch(os_aio_array_t*, os_aio_slot_t*) (os0file.cc:4772)
==30150==    by 0xAC00E2: os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*) (os0file.cc:4966)
==30150==    by 0xC760A0: pfs_os_aio_func(unsigned long, unsigned long, char const*, int, void*, unsigned long, unsigned long, fil_node_t*, void*, unsigned long, trx_t*, char const*, unsigned long) (os0file.ic:230)
==30150==    by 0xC82EC4: _fil_io(unsigned long, bool, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, void*, void*, trx_t*) (fil0fil.cc:5723)
==30150==    by 0xC18C24: buf_dblwr_write_block_to_datafile(buf_page_t const*, bool) (buf0dblwr.cc:813)
==30150==    by 0xC1905A: buf_dblwr_flush_buffered_writes() (buf0dblwr.cc:952)
==30150==    by 0xC206BD: buf_flush_page(buf_pool_t*, buf_page_t*, buf_flush_t, bool) (buf0flu.cc:1073)
==30150==    by 0xC20CC1: buf_flush_try_neighbors(unsigned long, unsigned long, buf_flush_t, unsigned long, unsigned long) (buf0flu.cc:1298)
==30150==    by 0xC20FE6: buf_flush_page_and_try_neighbors(buf_page_t*, buf_flush_t, unsigned long, unsigned long*) (buf0flu.cc:1386)
==30150==    by 0xC21AC7: buf_do_flush_list_batch(buf_pool_t*, unsigned long, unsigned long) (buf0flu.cc:1715)
==30150==    by 0xC21E5B: buf_flush_batch(buf_pool_t*, buf_flush_t, unsigned long, unsigned long, bool, flush_counters_t*) (buf0flu.cc:1792)
==30150==    by 0xC22451: buf_flush_list(unsigned long, unsigned long, unsigned long*) (buf0flu.cc:2048)
==30150==    by 0xC22E9A: page_cleaner_do_flush_batch(unsigned long, unsigned long) (buf0flu.cc:2348)
==30150==    by 0xC24111: buf_flush_page_cleaner_thread (buf0flu.cc:2731)
==30150==    by 0x4E3D0A3: start_thread (pthread_create.c:309)
==30150==  Address 0xca90000 is not stack'd, malloc'd or (recently) free'd
==30150== Thread 32:
==30150== Conditional jump or move depends on uninitialised value(s)
==30150==    at 0xA30C00: innobase_create_zip_dict_references(TABLE const*, unsigned long, unsigned long*, trx_t*) (ha_innodb.cc:6010)
==30150==    by 0xA3AA57: ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*) (ha_innodb.cc:11380)
==30150==    by 0x849311: handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*) (handler.cc:4339)
==30150==    by 0xE279EE: ha_partition::create(char const*, TABLE*, HA_CREATE_INFO*) (ha_partition.cc:735)
==30150==    by 0x849311: handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*) (handler.cc:4339)
==30150==    by 0x84A1CF: ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*) (handler.cc:4708)
==30150==    by 0x7048E1: mysql_alter_table(THD*, char*, char*, HA_CREATE_INFO*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool) (sql_table.cc:8940)
==30150==    by 0x7700CA: Sql_cmd_alter_table::execute(THD*) (sql_alter.cc:312)
==30150==    by 0x652391: mysql_execute_command(THD*) (sql_parse.cc:5115)
==30150==    by 0x6557C7: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6576)
==30150==    by 0x92F316: Query_log_event::do_apply_event(rpl_group_info*, char const*, unsigned int) (log_event.cc:4363)
==30150==    by 0x92E49E: Query_log_event::do_apply_event(rpl_group_info*) (log_event.cc:4056)
==30150==    by 0x5BDD8F: Log_event::apply_event(rpl_group_info*) (log_event.h:1360)
==30150==    by 0x5B46C1: apply_event_and_update_pos(Log_event*, THD*, rpl_group_info*, rpl_parallel_thread*) (slave.cc:3297)
==30150==    by 0x7C96A7: rpt_handle_event(rpl_parallel_thread::queued_event*, rpl_parallel_thread*) (rpl_parallel.cc:52)
==30150==    by 0x7CBE37: handle_rpl_parallel_thread (rpl_parallel.cc:1201)
^ Found warnings in /data/src/10.0-bug/mysql-test/var/log/mysqld.2.err
ok

It started happening after this merge:

commit bd4568a11120f3dd84a11fe01bc7aaaf8c5823a4
Merge: 82ab92b 2cfccbe
Author: Sergei Golubchik <serg@mariadb.org>
Date:   Wed Oct 26 10:49:31 2016 +0200
 
    Merge branch 'bb-10.0-serg' into 10.0



 Comments   
Comment by Jan Lindström (Inactive) [ 2016-10-31 ]

commit 923a7f8675e262b45ee63bffb617477ca5b5011d
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Mon Oct 31 12:16:53 2016 +0200

MDEV-11188: rpl.rpl_parallel_partition fails with valgrind warnings in buildbot and outside

Comment by Jan Lindström (Inactive) [ 2016-11-01 ]

Additional commit for valgrind test failure in test rpl.rpl_parallel_mdev6589 related to alter table.

commit 9741e0ea7250ef088b29294049902c7f568ba3f5
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Tue Nov 1 07:52:28 2016 +0200

Initialize zip_dict_ids table and avoid referencing array items
as currently MariaDB does not support compressed columns.

Generated at Thu Feb 08 07:47:59 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.