-
Deepthi ES authored
The synopsis line test failed and its reason turns out to be a persistent error at START-SLAVE (l.66: --source include/start_slave.inc). The error log actually shows: [ERROR] Error looking for file after ./slave-relay-bin.000003 The error analysis showed that SELECT Master_log_name FROM mysql.slave_relay_log_info == "" => true The empty Master_log_name obviously can't match to a non-empty data from the Worker info table which dooms MTS recovery. The reason for the empty Master_log_name is that Rotate event applier never cared to call Rpl_info_table::flush_info(force == true). The argument value is propagated as false from Relay_log_info::inc_group_relay_log_pos(). Because of that Rpl_info_table::flush_info(force == false) returns early to put the updated last executed coordinates at risk of getting lost which the test demonstrates. Fixed with making Rpl_info_table::flush_info(force == true) in the Rotate event case. The parameter value is set to true by Rotate_log_event::do_update_pos() and propagated from there through Relay_log_info::inc_group_relay_log_pos()'s extended signature with an bool argument.
Deepthi ES authoredThe synopsis line test failed and its reason turns out to be a persistent error at START-SLAVE (l.66: --source include/start_slave.inc). The error log actually shows: [ERROR] Error looking for file after ./slave-relay-bin.000003 The error analysis showed that SELECT Master_log_name FROM mysql.slave_relay_log_info == "" => true The empty Master_log_name obviously can't match to a non-empty data from the Worker info table which dooms MTS recovery. The reason for the empty Master_log_name is that Rotate event applier never cared to call Rpl_info_table::flush_info(force == true). The argument value is propagated as false from Relay_log_info::inc_group_relay_log_pos(). Because of that Rpl_info_table::flush_info(force == false) returns early to put the updated last executed coordinates at risk of getting lost which the test demonstrates. Fixed with making Rpl_info_table::flush_info(force == true) in the Rotate event case. The parameter value is set to true by Rotate_log_event::do_update_pos() and propagated from there through Relay_log_info::inc_group_relay_log_pos()'s extended signature with an bool argument.
Loading