• Kristian Nielsen's avatar
    MDEV-6551: Some replication errors are ignored if slave_parallel_threads > 0 · cfa1ce81
    Kristian Nielsen authored
    The problem occured when using parallel replication, and an error occured that
    caused the SQL thread to stop when the IO thread had already reached a
    following binlog file from the master (or otherwise performed a relay log
    rotation).
    
    In this case, the Rotate Event at the end of the relay log file could still be
    executed, even though an earlier event in that relay log file had gotten an
    error. This would cause the position to be incorrectly updated, so that upon
    restart of the SQL thread, the event that had failed would be silently skipped
    and ignored, causing replication corruption.
    
    Fixed by checking before executing Rotate Event, whether an earlier event
    has failed. If so, the Rotate Event is not executed, just dequeued, same as
    for other normal events following a failing event.
    cfa1ce81
rpl_parallel.h 8.69 KB