[MDEV-23868] Replication stops while using XA with Myisam table Created: 2020-10-01  Updated: 2023-11-28

Status: Confirmed
Project: MariaDB Server
Component/s: Replication
Affects Version/s: 10.5, 10.6, 10.7, 10.8, 10.9
Fix Version/s: 10.5, 10.6

Type: Bug Priority: Major
Reporter: Alice Sherepa Assignee: Brandon Nesterenko
Resolution: Unresolved Votes: 1
Labels: None

Issue Links:
Relates
relates to MDEV-25616 Binlog event for XA COMMIT is generat... Closed

 Description   

--source include/master-slave.inc
 
--connection master
create table t1 (c1 int,c2 int)engine=myisam;
insert into t1 values(1,1),(2,2);
 
xa start 'xa';
update t1 set c1=3 where c2=2;
xa end 'xa';
xa prepare 'xa';
xa commit 'xa';
 
sync_slave_with_master;

Last_Error	Error 'XAER_NOTA: Unknown XID' on query. Default database: 'test'. Query: 'XA COMMIT X'7861',X'',1'

**** SHOW BINLOG EVENTS on default ****
binlog_name = 'master-bin.000001'
SHOW BINLOG EVENTS IN 'master-bin.000001';
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	4	Format_desc	1	256	Server ver: 10.5.6-MariaDB-debug-log, Binlog ver: 4
master-bin.000001	256	Gtid_list	1	285	[]
master-bin.000001	285	Binlog_checkpoint	1	329	master-bin.000001
master-bin.000001	329	Gtid	1	371	GTID 0-1-1
master-bin.000001	371	Query	1	482	use `test`; create table t1 (c1 int,c2 int)engine=myisam
master-bin.000001	482	Gtid	1	524	BEGIN GTID 0-1-2
master-bin.000001	524	Query	1	623	use `test`; insert into t1 values(1,1),(2,2)
master-bin.000001	623	Query	1	696	COMMIT
master-bin.000001	696	Gtid	1	738	BEGIN GTID 0-1-3
master-bin.000001	738	Query	1	834	use `test`; update t1 set c1=3 where c2=2
master-bin.000001	834	Query	1	907	COMMIT
master-bin.000001	907	Gtid	1	951	GTID 0-1-4
master-bin.000001	951	Query	1	1041	XA COMMIT X'7861',X'',1



 Comments   
Comment by Alice Sherepa [ 2022-06-30 ]

an observation - if I add "--source include/have_innodb.inc" in the test, then it does not fail

--source include/have_innodb.inc
--source include/master-slave.inc
 
--connection master
create table t1 (c1 int,c2 int)engine=myisam;
insert into t1 values(1,1),(2,2);
 
xa start 'xa';
update t1 set c1=3 where c2=2;
xa end 'xa';
xa prepare 'xa';
xa commit 'xa';
 
sync_slave_with_master;

Generated at Thu Feb 08 09:25:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.