Conditional jump or move depends on uninitialised value(s) at exec_relay_log_event

Bug #1674299 reported by Laurynas Biveinis on 2017-03-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Status tracked in 5.7
5.5
Invalid
Undecided
Unassigned
5.6
Fix Released
High
Robert Golebiowski
5.7
Fix Released
High
Robert Golebiowski

Bug Description

Several rpl testcases started failing under Valgrind with:

==20950== Thread 23:
==20950== Conditional jump or move depends on uninitialised value(s)
==20950== at 0xA0C5D6: exec_relay_log_event(THD*, Relay_log_info*) (rpl_slave.cc:4414)
==20950== by 0xA12D39: handle_slave_sql (rpl_slave.cc:6438)
==20950== by 0xE55A32: pfs_spawn_thread (pfs.cc:1860)
==20950== by 0x5F4D6C9: start_thread (pthread_create.c:333)
==20950== by 0x6B140AE: clone (clone.S:105)
==20950== Uninitialised value was created by a stack allocation
==20950== at 0x9A477F: Log_event::get_slave_worker(Relay_log_info*) (log_event.cc:2710)
==20950==

The testcases are rpl.rpl_gtid_mts_relay_log_recovery_auto_pos_on_off rpl.rpl_mts_slave_hang_with_partial_trx rpl.rpl_parallel_conflicts rpl.rpl_parallel_switch_sequential rpl.rpl_parallel_change_master rpl.rpl_parallel_multi_db.

git blame suggests - and it seems to be very likely - that this is a regression introduced by the fix for bug 1654091

Download full text (7.1 KiB)

On SHOW SLAVE STATUS testcases it looks like

rpl.rpl_mts_slave_hang_with_partial_trx 'row' w1 [ fail ] Found warnings/errors in server log file!
        Test ended at 2017-03-16 23:01:20
line
==15303== Thread 26:
==15303== Conditional jump or move depends on uninitialised value(s)
==15303== at 0xAE18B8: show_slave_status(THD*, Master_info*) (rpl_slave.cc:3302)
==15303== by 0x81B605: mysql_execute_command(THD*) (sql_parse.cc:3296)
==15303== by 0x825DD8: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7056)
==15303== by 0x816F61: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1485)
==15303== by 0x815CF1: do_command(THD*) (sql_parse.cc:1062)
==15303== by 0x7D8BED: do_handle_one_connection(THD*) (sql_connect.cc:1550)
==15303== by 0x7D88CD: handle_one_connection (sql_connect.cc:1454)
==15303== by 0xF1CAAB: pfs_spawn_thread (pfs.cc:1860)
==15303== by 0x61596B9: start_thread (pthread_create.c:333)
==15303== by 0x6D1D82C: clone (clone.S:109)
==15303== Conditional jump or move depends on uninitialised value(s)
==15303== at 0x82BDCA: long const& std::max<long>(long const&, long const&) (stl_algobase.h:224)
==15303== by 0xAE18E2: show_slave_status(THD*, Master_info*) (rpl_slave.cc:3303)
==15303== by 0x81B605: mysql_execute_command(THD*) (sql_parse.cc:3296)
==15303== by 0x825DD8: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7056)
==15303== by 0x816F61: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1485)
==15303== by 0x815CF1: do_command(THD*) (sql_parse.cc:1062)
==15303== by 0x7D8BED: do_handle_one_connection(THD*) (sql_connect.cc:1550)
==15303== by 0x7D88CD: handle_one_connection (sql_connect.cc:1454)
==15303== by 0xF1CAAB: pfs_spawn_thread (pfs.cc:1860)
==15303== by 0x61596B9: start_thread (pthread_create.c:333)
==15303== by 0x6D1D82C: clone (clone.S:109)
==15303== Conditional jump or move depends on uninitialised value(s)
==15303== at 0xF76E4E: int10_to_str (int2str.c:142)
==15303== by 0x74E132: Protocol_text::store_longlong(long long, bool) (protocol.cc:1051)
==15303== by 0x765677: Protocol::store(long long) (protocol.h:83)
==15303== by 0xAE18FE: show_slave_status(THD*, Master_info*) (rpl_slave.cc:3303)
==15303== by 0x81B605: mysql_execute_command(THD*) (sql_parse.cc:3296)
==15303== by 0x825DD8: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7056)
==15303== by 0x816F61: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1485)
==15303== by 0x815CF1: do_command(THD*) (sql_parse.cc:1062)
==15303== by 0x7D8BED: do_handle_one_connection(THD*) (sql_connect.cc:1550)
==15303== by 0x7D88CD: handle_one_connection (sql_connect.cc:1454)
==15303== by 0xF1CAAB: pfs_spawn_thread (pfs.cc:1860)
==15303== by 0x61596B9: start_thread (pthread_create.c:333)
==15303== by 0x6D1D82C: clone (clone.S:109)
==15303== Conditional jump or move depends on uninitialised value(s)
==15303== at 0xF76F0E: int10_to_str (int2str.c:156)
==15303== by 0x74E132: Protocol_text::store_longlong(long long, bool) (protocol.cc:1051)
==...

Read more...

tags: added: regression valgrind

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-1077

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers