mariadb/mysql-test/suite/binlog/r/binlog_1pc.result
Andrei Elkin 390014781b MDEV-26031 unnessary xid logging in one phase commit case
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.
2021-06-29 14:13:37 +03:00

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