multiple slaves error: bogus data in log event

hello, we have one master and two slaves and as soon as the slaves start to replicate, we get this error in one slave only (the other keeps running):

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘bogus data in log event; the first event ‘mysql-bin.000002’ at 211200498, the last event read from ‘/var/lib/mysql/binlog/mysql-bin.000002’ at 211359690, the last byte read from ‘/var/lib/mysql/binlog/mysql-bin.000002’ at 211359709.’

If we start the slave with the error, it keeps working until the slaves are up-to-date again and one of them gets the error. So we think that the issue is in some way related to the binlog concurrence reading by the slave server I/O thread. If the slaves are not reading from the same position of the binlog (no concurrence readings), the error does not happen.

We can prevent this error in three ways:

  • having only one slave (not an option, we need two of them)
  • setting slave_compressed_protocol=1 (not an option, too much cpu usage)
  • change the sync_binlog value to off (not an option, we cannot lose transactions)

mysql-community-server-5.7.12-1
Red Hat Enterprise Linux Server release 6.5 (Santiago)

  • GTID is enabled (this is something that we need too)

Any ideas to fix this issue?
Regards.

Any help would be appreciated. Thanks.

Make sure you have innodb_flush_log_at_trx_commit & sync_binlog set to 1 on master. Do you have crash slave featured enabled ([url]https://www.percona.com/blog/2013/09/13/enabling-crash-safe-slaves-with-mysql-5-6/[/url]) ? It would be better to review master/slave(s) my.cnf