mirror of
https://github.com/MariaDB/server.git
synced 2025-02-10 15:35:34 +01:00
![Monty](/assets/img/avatar_default.png)
MDEV-29533 Crash when MariaDB is replica of MySQL 8.0 MySQL 8.0 has added the following new events in the MySQL binary log PARTIAL_UPDATE_ROWS_EVENT TRANSACTION_PAYLOAD_EVENT HEARTBEAT_LOG_EVENT_V2 - PARTIAL_UPDATE_ROWS_EVENT is used by MySQL to generate update statements using JSON_SET, JSON_REPLACE and JSON_REMOVE to make update of JSON columns more efficient. These events can be disabled by setting 'binlog-row-value-options=""' - TRANSACTION_PAYLOAD_EVENT is used by MySQL to signal that a row event is compressed. It an be disably by setting 'binlog_transaction_compression=0'. - HEARTBEAT_LOG_EVENT_V2 is written to the binary log many times per seconds. It can be ignored by the server. What this patch does: - If PARTIAL_UPDATE_ROWS_EVENT or TRANSACTION_PAYLOAD_EVENT is found, the server will stop with an error message of how to disable the MySQL server to generate such events. - HEARTBEAT_LOG_EVENT_V2 events are ignored. - mariadb-binlog will write the name of the new events. - mariadb-binlog will stop if PARTIAL_UPDATE_ROWS_EVENT or TRANSACTION_PAYLOAD_EVENT is found, unless --force is given. - Fixes a crash in mariadb-binlog if a character set unknown to MariaDB is found. (MDEV-29533) From Kristian Nielsen: - Add test case for MySQL 8.0 to MariaDB replication and fixed a a small typo in post_header_len initialization. Reviewer: knielsen@mariadb.org
52 lines
2.3 KiB
Text
52 lines
2.3 KiB
Text
include/master-slave.inc
|
|
[connection master]
|
|
connection slave;
|
|
include/stop_slave.inc
|
|
connection master;
|
|
include/rpl_stop_server.inc [server_number=1]
|
|
include/rpl_start_server.inc [server_number=1]
|
|
connection slave;
|
|
CHANGE MASTER TO Master_log_file='master-bin.000001', Master_log_pos=4, Master_use_gtid=No;
|
|
START SLAVE IO_THREAD;
|
|
include/wait_for_slave_io_to_start.inc
|
|
START SLAVE UNTIL Master_log_file='master-bin.000001', Master_log_pos= 1178;
|
|
SELECT MASTER_POS_WAIT('master-bin.000001', 1178, 60);
|
|
MASTER_POS_WAIT('master-bin.000001', 1178, 60)
|
|
NULL
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b c
|
|
1 0
|
|
2 0 hulu
|
|
3 0 bulu
|
|
include/wait_for_slave_sql_to_stop.inc
|
|
START SLAVE;
|
|
include/wait_for_slave_sql_error.inc [errno=1594]
|
|
STOP SLAVE IO_THREAD;
|
|
include/wait_for_slave_io_to_stop.inc
|
|
CHANGE MASTER TO Master_log_file='master-bin.000001', Master_log_pos=2297;
|
|
START SLAVE IO_THREAD;
|
|
START SLAVE SQL_THREAD;
|
|
include/wait_for_slave_io_to_start.inc
|
|
include/wait_for_slave_sql_error.inc [errno=1594]
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b c
|
|
1 0
|
|
2 0 hulu
|
|
3 0 bulu
|
|
4 0 skip
|
|
5 0 after compressed
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 {"a": "hulu", "b": "[zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy][zyzzy]", "c": "bulu"}
|
|
STOP SLAVE IO_THREAD;
|
|
include/wait_for_slave_io_to_stop.inc
|
|
CHANGE MASTER TO Master_log_file='master-bin.000002', Master_log_pos=4;
|
|
START SLAVE IO_THREAD;
|
|
START SLAVE SQL_THREAD;
|
|
include/wait_for_slave_io_to_start.inc
|
|
include/wait_for_slave_sql_to_start.inc
|
|
DROP TABLE t1, t2;
|
|
CALL mtr.add_suppression('TRANSACTION_PAYLOAD_EVENT event. You can avoid this event by specifying');
|
|
CALL mtr.add_suppression('PARTIAL_UPDATE_ROWS_EVENT event. You can avoid this event by specifying');
|
|
connection master;
|
|
include/rpl_end.inc
|