mirror of
https://github.com/MariaDB/server.git
synced 2025-03-15 11:38:42 +01:00

The bug was originally observed as hanging binlog background thread at shutdown similar to one of MDEV-21120. It occurred through unnessary xid logging in 1pc execution. Two parts of the issue are fixed. Per engine loop by involved engine with attempt to mark a group requiring xid unlogging gets corrected in two ways. Do not execute it when the termination event is irrelevant for recovery, does not have xid in particular. Do not break the loop anymore unconditionally at the end of the 1st iteration.
34 lines
1.3 KiB
Text
34 lines
1.3 KiB
Text
RESET MASTER;
|
|
CREATE TABLE t (f INT) ENGINE=INNODB;
|
|
CREATE TABLE ta (f INT) ENGINE=Aria;
|
|
BEGIN;
|
|
INSERT INTO t SET f = 1;
|
|
INSERT INTO ta SET f = 1;
|
|
COMMIT;
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; INSERT INTO ta SET f = 1
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; INSERT INTO t SET f = 1
|
|
master-bin.000001 # Query # # COMMIT
|
|
# Prove that binlog is resettable. Under the bug condition it was not.
|
|
RESET MASTER;
|
|
SET @@binlog_format = ROW;
|
|
CREATE TABLE ta2 ENGINE = Aria SELECT * from t;
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; CREATE TABLE `ta2` (
|
|
`f` int(11) DEFAULT NULL
|
|
) ENGINE=Aria PAGE_CHECKSUM=1
|
|
master-bin.000001 # Annotate_rows # # CREATE TABLE ta2 ENGINE = Aria SELECT * from t
|
|
master-bin.000001 # Table_map # # table_id: # (test.ta2)
|
|
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query # # COMMIT
|
|
# Prove that binlog is resettable. Under the bug condition it was not.
|
|
RESET MASTER;
|
|
# Cleanup
|
|
DROP TABLE ta2, ta, t;
|
|
# End of the tests
|