[MDEV-18803] Memory tables replication Created: 2019-03-03  Updated: 2019-04-01

Status: Open
Project: MariaDB Server
Component/s: Replication
Affects Version/s: 10.2.22
Fix Version/s: 10.2

Type: Bug Priority: Major
Reporter: Mykhailo Pashchenko Assignee: Andrei Elkin
Resolution: Unresolved Votes: 0
Labels: None


 Description   

I have 3 servers with replication: server11->server12->server13 and when I try to insert into memory table on server11, then restart server 12 and insert into table on server11 again I receive corrupter binlog on server12, and failed replication on server13.

server11 binlog:

#190303 19:05:18 server id 11  end_log_pos 1008055918 CRC32 0x18f82a42  GTID 0-11-130384662
/*!100001 SET @@session.gtid_seq_no=130384662*//*!*/;
BEGIN
/*!*/;
# at 1008055918
#190303 19:05:18 server id 11  end_log_pos 1008055965 CRC32 0x79ae1d93  Table_map: `test`.`temp` mapped to number 8852
# at 1008055965
#190303 19:05:18 server id 11  end_log_pos 1008056003 CRC32 0x9fcf6622  Write_rows: table id 8852 flags: STMT_END_F
 
BINLOG '
Tgl8XBMLAAAALwAAAJ22FTwAAJQiAAAAAAEABHRlc3QABHRlbXAAAQMAAZMdrnk=
Tgl8XBcLAAAAJgAAAMO2FTwAAJQiAAAAAAEAAf/+AgAAACJmz58=
'/*!*/;
### INSERT INTO `test`.`temp`
### SET
###   @1=2 /* INT meta=0 nullable=1 is_null=0 */
# at 1008056003
#190303 19:05:18 server id 11  end_log_pos 1008056081 CRC32 0x99c5a7fa  Query   thread_id=274039915     exec_time=0     error_code=0
SET TIMESTAMP=1551632718/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
COMMIT
/*!*/;
# at 1008056081

server12 binlog:

#190303 19:05:18 server id 11  end_log_pos 6379642 CRC32 0x7a15a37a     GTID 0-11-130384662 trans
/*!100001 SET @@session.gtid_seq_no=130384662*//*!*/;
BEGIN
/*!*/;
# at 6379642
#190303 19:05:18 server id 11  end_log_pos 6379737 CRC32 0x233ce8cf     Query   thread_id=274136502     exec_time=80    error_code=0
SET TIMESTAMP=1551632718/*!*/;
DELETE FROM `test`.`temp`c      <97><F9>
/*!*/;
# at 6379737
#190303 19:05:18 server id 11  end_log_pos 6379784 CRC32 0x2a1295b6     Table_map: `test`.`temp` mapped to number 212
# at 6379784
#190303 19:05:18 server id 11  end_log_pos 6379822 CRC32 0x693d537c     Write_rows: table id 212 flags: STMT_END_F
 
BINLOG '
Tgl8XBMLAAAALwAAAAhZYQAAANQAAAAAAAEABHRlc3QABHRlbXAAAQMAAbaVEio=
Tgl8XBcLAAAAJgAAAC5ZYQAAANQAAAAAAAEAAQH+AgAAAHxTPWk=
'/*!*/;
### INSERT INTO `test`.`temp`
### SET
###   @1=2 /* INT meta=0 nullable=1 is_null=0 */
# at 6379822
#190303 19:05:18 server id 11  end_log_pos 6379853 CRC32 0xcd462100     Xid = 22539
COMMIT/*!*/;
# at 6379853

server13 message:

1064 | Error 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'c   ??' at line 1' on query. Default database: ''. Query: 'DELETE FROM `test`.`temp`c       ▒▒'

Queries used on server11:

create table temp(a int(11)) engine=memory;
insert into temp values(1); -- replication was ok at this time
-- restart server 12
insert into temp values(2); -- replication broken on server13


Generated at Thu Feb 08 08:46:51 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.