• unknown's avatar
    MDEV-5764: START SLAVE UNTIL does not work with parallel replication · 641feed4
    unknown authored
    With parallel replication, there can be any number of events queued on
    in-memory lists in the worker threads.
    
    For normal STOP SLAVE, we want to skip executing any remaining events on those
    lists and stop as quickly as possible.
    
    However, for START SLAVE UNTIL, when the UNTIL position is reached in the SQL
    driver thread, we must _not_ stop until all already queued events for the
    workers have been executed - otherwise we would stop too early, before the
    actual UNTIL position had been completely reached.
    
    The code did not handle UNTIL correctly, stopping too early due to not
    executing the queued events to completion. Fix this, and also implement that
    an explicit STOP SLAVE in the middle (when the SQL driver thread has reached
    the UNTIL position but the workers have not) _will_ cause an immediate stop.
    641feed4
log_event.cc 387 KB