mirror of
https://github.com/MariaDB/server.git
synced 2025-10-16 22:27:52 +03:00
The problem was the Gtid_list event which is logged to the binlog in 10.0 and is not understood by the 5.5 server. This event is supposed to be replaced with a dummy event for 5.5 servers. But the very first event logged in the very first binlog has an empty list of GTID, which makes the event too short to be replacable with an empty event. The fix is to pad the empty Gtid_list event to be big enough to be replacable by a dummy event.
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
SET GLOBAL innodb_flush_log_at_trx_commit=3;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb;
|
|
INSERT INTO t1 VALUES (0);
|
|
SET DEBUG_SYNC= "commit_after_get_LOCK_log SIGNAL con1_waiting WAIT_FOR con3_queued";
|
|
SET DEBUG_SYNC= "commit_loop_entry_commit_ordered SIGNAL con1_loop WAIT_FOR con1_loop_cont EXECUTE 3";
|
|
INSERT INTO t1 VALUES (1);
|
|
SET DEBUG_SYNC= "now WAIT_FOR con1_waiting";
|
|
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL con2_queued";
|
|
INSERT INTO t1 VALUES (2);
|
|
SET DEBUG_SYNC= "now WAIT_FOR con2_queued";
|
|
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL con3_queued";
|
|
INSERT INTO t1 VALUES (3);
|
|
SET DEBUG_SYNC= "now WAIT_FOR con1_loop";
|
|
SET DEBUG_SYNC= "now SIGNAL con1_loop_cont";
|
|
SET DEBUG_SYNC= "now WAIT_FOR con1_loop";
|
|
SET DEBUG_SYNC= "now SIGNAL con1_loop_cont";
|
|
SET DEBUG_SYNC= "now WAIT_FOR con1_loop";
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
0
|
|
1
|
|
2
|
|
SET SESSION debug_dbug="+d,crash_dispatch_command_before";
|
|
SELECT 1;
|
|
Got one of the listed errors
|
|
Got one of the listed errors
|
|
Got one of the listed errors
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
0
|
|
1
|
|
2
|
|
3
|
|
InnoDB: Last MySQL binlog file position 0 922, file name ./master-bin.000001
|
|
SET DEBUG_SYNC= 'RESET';
|
|
DROP TABLE t1;
|