-
Sven Sandberg authored
When using the GTID-aware master-slave protocol, the master skips transactions that the slave already has. This caused the slave IO thread to remember the wrong position. When using GTIDs, the position is not normally used for anything, so this should not be a big problem. However, as a special case, the position was used in addition to the GTID when the slave reconnects to the same master. In this bug, we fixed the problem by making the GTID-aware master-slave protocol not use positions at all. In addition, we make the master dump thread completely skip binary logs that were generated when GTID_MODE!=ON (or by an old server), if using the GTID protocol. This is necessary because otherwise such binary logs will be sent again. This does not skip anything that should have been replicated, because it is a requirement in the upgrade procedure that the user waits until all GTID-free binary logs have been replicated before using the GTID protocol.
Sven Sandberg authoredWhen using the GTID-aware master-slave protocol, the master skips transactions that the slave already has. This caused the slave IO thread to remember the wrong position. When using GTIDs, the position is not normally used for anything, so this should not be a big problem. However, as a special case, the position was used in addition to the GTID when the slave reconnects to the same master. In this bug, we fixed the problem by making the GTID-aware master-slave protocol not use positions at all. In addition, we make the master dump thread completely skip binary logs that were generated when GTID_MODE!=ON (or by an old server), if using the GTID protocol. This is necessary because otherwise such binary logs will be sent again. This does not skip anything that should have been replicated, because it is a requirement in the upgrade procedure that the user waits until all GTID-free binary logs have been replicated before using the GTID protocol.
Loading