Skip to content
  • Deepthi ES's avatar
    77c7d1e4
    Bug#26005418 RPL_SIMULATE_CREATE_CHUNK_FAILURE FAILS IN MTS MODE WITH RLI=TABLE · 77c7d1e4
    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.
    77c7d1e4
    Bug#26005418 RPL_SIMULATE_CREATE_CHUNK_FAILURE FAILS IN MTS MODE WITH RLI=TABLE
    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.
Loading