Changed behaviour for a slave requesting master_log_pos beyond binlog file size

Slave request for a log_pos behind binlog file size may result in a
disconnection or replication error:

if binlog file is latest one slave get disconnected otherwise an error
message is returned and replication stops
This commit is contained in:
MassimilianoPinto
2015-12-17 15:45:16 +01:00
parent 2b6b8f87db
commit 0f51f9c714
3 changed files with 44 additions and 2 deletions

View File

@ -2034,6 +2034,27 @@ char read_errmsg[BINLOG_ERROR_MSG_LEN+1];
read_errmsg);
}
if (hdr.ok == SLAVE_POS_BEYOND_EOF) {
MXS_ERROR("%s Slave %s:%i, server-id %d, binlog '%s', %s",
router->service->name,
slave->dcb->remote,
ntohs((slave->dcb->ipv4).sin_port),
slave->serverid,
slave->binlogfile,
read_errmsg);
/*
* Close the slave session and socket
* The slave will try to reconnect
*/
dcb_close(slave->dcb);
#ifndef BLFILE_IN_SLAVE
blr_close_binlog(router, file);
#endif
return 0;
}
if (hdr.ok == SLAVE_POS_READ_ERR) {
MXS_ERROR("%s Slave %s:%i, server-id %d, binlog '%s', %s",
router->service->name,