1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-27 05:41:41 +03:00
Files
mariadb/sql
Andrei Elkin 3dc3ab1a30 Added checking that row events ends with a proper end block
Problems --------

The slave io thread did not conduct integrity check
for a group of row-based events. Specifically it tolerates missed
terminal block event that must be flagged with STMT_END. Failure to
react on its loss can confuse the applier thread in various ways.
Another potential issue was that there were no check of impossible
second in row Gtid-log-event while the slave io thread is receiving
to be skipped events after reconnect.

Fixes
-----
The slave io thread is made by this patch to track the rows event
STMT_END status.
Whenever at next event reading the IO thread finds out that a preceding
Rows event did not actually had the flag, an
explicit error is issued.

Replication can be resumed after the source of failure is eliminated,
see a provided test.

Note that currently the row-based group integrity check excludes
the compressed version 2 Rows events (which are not generated by MariaDB
master).
Its uncompressed counterpart is manually tested.

The 2nd issue is covered to produce an error in case the io thread
receives a successive Gtid_log_event while it is post-reconnect
skipping.
2018-01-11 23:57:08 +02:00
..
2017-03-30 12:48:42 +02:00
2017-01-11 09:18:35 +02:00
2017-12-07 11:41:52 +02:00
2016-06-30 16:38:05 +02:00
2016-08-25 12:40:09 +02:00
2017-12-19 17:12:14 +02:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-09-20 17:47:49 +03:00
2018-01-08 17:01:55 +00:00
2017-12-19 17:12:14 +02:00
2016-12-29 13:23:18 +01:00
2017-12-14 09:53:19 +02:00
2017-12-14 09:53:19 +02:00
2016-10-19 14:10:03 +04:00
2017-04-07 18:09:56 +04:00
2018-01-05 18:58:45 +00:00
2017-03-30 12:48:42 +02:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2018-01-02 02:03:12 +02:00
2017-08-17 11:38:34 +02:00
2017-03-10 18:21:29 +01:00
2018-01-11 18:00:31 +02:00
2017-03-10 18:21:29 +01:00
2017-03-30 12:48:42 +02:00
2017-03-10 18:21:29 +01:00
2017-08-17 11:38:34 +02:00
2017-08-08 10:18:43 +02:00
2017-08-25 10:25:48 +02:00
2017-08-17 11:38:34 +02:00
2018-01-05 17:11:37 +00:00
2016-06-04 09:06:00 +02:00
2017-08-07 21:22:21 +03:00
2018-01-05 17:11:37 +00:00
2017-05-22 09:46:51 +03:00
2016-10-05 01:11:08 +03:00
2018-01-03 22:42:27 +02:00
2018-01-03 15:48:47 +02:00
2017-08-15 14:13:42 +04:00
2017-07-05 17:18:33 +04:00
2018-01-11 18:00:31 +02:00
2018-01-03 15:48:47 +02:00
2017-04-28 21:59:11 -07:00
2017-10-24 14:53:18 +02:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-09-23 15:48:47 +04:00
2016-06-30 16:38:05 +02:00
2018-01-11 18:00:31 +02:00
2017-05-06 14:36:46 +03:00
2017-12-18 16:41:40 +01:00
2018-01-11 18:00:31 +02:00
2017-06-14 12:02:54 +02:00
2017-11-21 19:47:46 +01:00
2018-01-11 18:00:31 +02:00
2018-01-11 18:00:31 +02:00
2018-01-05 17:11:37 +00:00
2017-05-29 15:46:29 +04:00
2018-01-03 22:42:27 +02:00
2018-01-11 18:00:31 +02:00
2017-12-20 13:30:05 +02:00
2018-01-03 22:42:27 +02:00
2018-01-03 15:48:47 +02:00
2017-03-30 12:48:42 +02:00
2016-06-04 09:06:00 +02:00
2017-09-28 17:20:46 +00:00
2017-09-28 17:20:46 +00:00
2017-05-06 14:36:46 +03:00
2017-11-05 22:23:32 +02:00
2017-03-10 18:21:29 +01:00
2017-03-10 18:21:29 +01:00
2017-09-20 10:46:09 +03:00
2017-09-17 14:03:51 +03:00
2017-03-30 12:48:42 +02:00
2017-03-30 12:48:42 +02:00
2017-09-19 12:43:02 +03:00
2017-08-31 09:30:40 +03:00
2017-03-30 12:48:42 +02:00