[MDEV-18175] table id overflow causes replication out of sync Created: 2019-01-09  Updated: 2019-03-05  Resolved: 2019-01-10

Status: Closed
Project: MariaDB Server
Component/s: Replication
Affects Version/s: 10.1.22
Fix Version/s: 10.1.38

Type: Bug Priority: Minor
Reporter: wy Assignee: Andrei Elkin
Resolution: Duplicate Votes: 0
Labels: None
Environment:

debian 8.2
MariaDB 10.1.22


Issue Links:
Duplicate
duplicates MDEV-17803 Row-based event is not applied when t... Closed

 Description   

When binglog_format is "row", DML statements would have a Table_map_event in binlog; each Table_map_event would have a table_id; the table_id is represented as ulong in binlog, while read into TABLE_LIST.table_id in slave, which is of type uint, so if table_id is larger than 2^32, it would cause type overflow, and those events in relay log would be silently skipped, hence causing data inconsistency between master and slave.



 Comments   
Comment by Andrei Elkin [ 2019-01-09 ]

This seems impractical to hit as the id 's life time is server life time.
However a single-liner fix to wrap around at overflow should close it.

Comment by Andrei Elkin [ 2019-01-10 ]

See MDEV-17803.

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