Skip to content
  • Joao Gramacho's avatar
    530d5557
    BUG#23203678 CHANGING MASTER_DELAY AFTER STOP SLAVE RESULTS IN LOSS OF EVENTS · 530d5557
    Joao Gramacho authored
    Problem
    -------
    
    The slave server is losing events not yet applied when
    MASTER_AUTO_POSITION=0, both replication threads are stopped and the
    applier delay is changed using CHANGE MASTER TO MASTER_DELAY.
    
    Analysis
    --------
    
    WL#6120 introduced the possibility of issuing CHANGE MASTER TO commands
    without having both replications threads started.
    
    Issuing CHANGE MASTER TO RELAY_LOG_FILE/RELAY_LOG_POS/MASTER_DELAY is
    possible with only the SQL thread stopped.
    
    When both thread are stopped and a CHANGE MASTER TO MASTER_DELAY is
    being issued, the slave is purging the relay log. In this case, as it is
    possible that the SQL thread was not in sync with the I/O thread, the
    SQL thread positions should be copied to the I/O thread. The I/O thread
    will then start replicating from where the SQL thread stopped, but this
    (the copy of the positions) is not happening.
    
    Fix
    ---
    
    Fixed the behavior of the MASTER_DELAY option.
    530d5557
    BUG#23203678 CHANGING MASTER_DELAY AFTER STOP SLAVE RESULTS IN LOSS OF EVENTS
    Joao Gramacho authored
    Problem
    -------
    
    The slave server is losing events not yet applied when
    MASTER_AUTO_POSITION=0, both replication threads are stopped and the
    applier delay is changed using CHANGE MASTER TO MASTER_DELAY.
    
    Analysis
    --------
    
    WL#6120 introduced the possibility of issuing CHANGE MASTER TO commands
    without having both replications threads started.
    
    Issuing CHANGE MASTER TO RELAY_LOG_FILE/RELAY_LOG_POS/MASTER_DELAY is
    possible with only the SQL thread stopped.
    
    When both thread are stopped and a CHANGE MASTER TO MASTER_DELAY is
    being issued, the slave is purging the relay log. In this case, as it is
    possible that the SQL thread was not in sync with the I/O thread, the
    SQL thread positions should be copied to the I/O thread. The I/O thread
    will then start replicating from where the SQL thread stopped, but this
    (the copy of the positions) is not happening.
    
    Fix
    ---
    
    Fixed the behavior of the MASTER_DELAY option.
Loading