Hole detection while receiving events and maxbinlogcheck support for encrypted binlog files

When a hole is detected while receiving events an ignorable event is
written in maxscale binlog. Such event is not sent ti slave servers.

Maxbinlogcheck can now check encrypted binlog files without decrypting
them
This commit is contained in:
MassimilianoPinto
2016-10-14 12:20:57 +02:00
parent 2fe58ebe5b
commit a30782227b
4 changed files with 382 additions and 47 deletions

View File

@ -60,6 +60,8 @@
* 23/10/2015 Markus Makela Added current_safe_event
* 09/05/2016 Massimiliano Pinto Added SELECT USER()
* 11/07/2016 Massimiliano Pinto Added SSL backend support
* 16/09/2016 Massimiliano Pinto IGNORABLE_EVENT created by MaxScale is not sent to slaves,
* Events with LOG_EVENT_IGNORABLE_F are also skipped.
*
* @endverbatim
*/
@ -2309,6 +2311,15 @@ blr_slave_catchup(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, bool large)
strcpy(binlog_name, slave->binlogfile);
binlog_pos = slave->binlog_pos;
/* Don't sent special events generated by MaxScale */
if (hdr.event_type == IGNORABLE_EVENT || (hdr.flags & LOG_EVENT_IGNORABLE_F))
{
slave->binlog_pos = hdr.next_pos;
gwbuf_free(record);
record = NULL;
continue;
}
if (hdr.event_type == ROTATE_EVENT)
{
unsigned long beat1 = hkheartbeat;