Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2.12
Description
When giving a parallel optimistic slave a replication stop position with
START SLAVE UNTIL ...file..., ...pos...;
it may actually stop at a position earlier than the given one if the slave worker that performs the transaction that spans over the given stop position has to roll back due to conflicts.
This seems to leave the slave in a state where the SQL master thread still waits for the transaction to complete, but does not hand out any more tasks to the actual worker threads. This seems to include re-execution of failed transactions that start before the stop position.
So replication effectively stops, but the SQL thread still shows as "Slave_SQL_Running: YES" and Exec_master_log_pos showing a log position smaller than the given stop position, whereas UNTIL should actually end with Slave_SQL_Running=No and the Exec position at the beginning of the first transaction (or event?) after the stop position.
Meanwhile the actual slave worker threads seem to have been terminated already, and attempts to stop the slave do not succeed.