MDEV-14721 Big transaction events get lost on semisync master when

replicate_events_marked_for_skip=FILTER_ON_MASTER

When events of a big transaction are binlogged offsetting over 2GB from
the beginning of the log the semisync master's dump thread
lost such events.
The events were skipped by the Dump thread that found their skipping
status erroneously.

The current fixes make sure the skipping status is computed correctly.
The test verifies them simulating the 2GB offset.
This commit is contained in:
Andrei Elkin 2018-01-26 23:26:39 +02:00 committed by Monty
commit c09371dce6
4 changed files with 96 additions and 5 deletions

View file

@ -1711,6 +1711,8 @@ bool Log_event::write_header(ulong event_data_length)
*/
log_pos= writer->pos() + data_written;
DBUG_EXECUTE_IF("dbug_master_binlog_over_2GB", log_pos += (1ULL <<31););
}
now= get_time(); // Query start time