1# ==== Purpose ====
2#
3# Test verifies that slave IO thread can process heartbeat events with log_pos
4# values higher than UINT32_MAX.
5#
6# ==== Implementation ====
7#
8# Steps:
9#    0 - Stop slave threads. Configure a small master_heartbeat_period.
10#    1 - Using debug points, simulate a huge binlog offset higher than
11#        UINT32_MAX on master.
12#    2 - Start the slave and observe that slave IO thread is able to process
13#        the offset received through heartbeat event.
14#
15# ==== References ====
16#
17# MDEV-16146: MariaDB slave stops with incompatible heartbeat
18#
19--source include/have_debug.inc
20--source include/have_innodb.inc
21--source include/have_binlog_format_mixed.inc
22# Test simulates binarylog offsets higher than UINT32_MAX
23--source include/have_64bit.inc
24--source include/master-slave.inc
25
26--connection master
27SET @saved_dbug = @@GLOBAL.debug_dbug;
28SET @@global.debug_dbug= 'd,simulate_pos_4G';
29
30--connection slave
31--source include/stop_slave.inc
32CHANGE MASTER TO MASTER_HEARTBEAT_PERIOD=0.001;
33--source include/start_slave.inc
34
35--connection master
36sleep 1;
37SET @@GLOBAL.debug_dbug = @saved_dbug;
38--sync_slave_with_master
39
40--connection master
41CREATE TABLE t (f INT) ENGINE=INNODB;
42INSERT INTO t VALUES (10);
43DROP TABLE t;
44--source include/rpl_end.inc
45