In a MySQL 5.7 master-slave setup that uses the default
semisynchronous replication setting for rpl_semi_sync_master_wait_point, a crash of
the master and failover to the slave is considered to be
lossless. However, when the crashed master comes back, you may
find that it has transactions that are not present in the current
master (which was previously a slave). This behavior may be
puzzling, given that semisynchronous replication is supposed to be
lossless, but this is actually an expected behavior in MySQL. Why
exactly this happens is explained in full detail in the …
[Read more]