-
Manish Kumar authored
Problem - In the event that the master is extended with a new checksum algorithm not known to the slave, the slave will deduce that there is no checksum support in the master. However, the master will send events with the new checksum while the slave treats it as no checksum, with potential for treating the checksum as part of the event body. Fix - Added a new variable BINLOG_CHECKSUM_ALG_UNKNOWN to denote the checksum algorithm used by master, which is unknown to the slave. Changed the code that checks the result of the SET @master_binlog_checksum = @@global.binlog_checksum on the slave. Set mi->checksum_alg_before_fd to BINLOG_CHECKSUM_ALG_OFF if an error is reported while executing the query. Incase there is no error and the checksum algorithm is unknown function find_type returns 0 and the value of mi->checksum_alg_before_fd == -1. In such a case we stop the slave with an error message.
Manish Kumar authoredProblem - In the event that the master is extended with a new checksum algorithm not known to the slave, the slave will deduce that there is no checksum support in the master. However, the master will send events with the new checksum while the slave treats it as no checksum, with potential for treating the checksum as part of the event body. Fix - Added a new variable BINLOG_CHECKSUM_ALG_UNKNOWN to denote the checksum algorithm used by master, which is unknown to the slave. Changed the code that checks the result of the SET @master_binlog_checksum = @@global.binlog_checksum on the slave. Set mi->checksum_alg_before_fd to BINLOG_CHECKSUM_ALG_OFF if an error is reported while executing the query. Incase there is no error and the checksum algorithm is unknown function find_type returns 0 and the value of mi->checksum_alg_before_fd == -1. In such a case we stop the slave with an error message.
Loading