mysql-binlog-connector-java icon indicating copy to clipboard operation
mysql-binlog-connector-java copied to clipboard

MissingTableMapEventException on multiple-rows transaction situation.

Open PhantomThief opened this issue 7 years ago • 4 comments

Hi,

we meet a MissingTableMapEventException, the detail exception is:

2018-11-08 05:53:32.089 ERROR 
com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException: Failed to deserialize data of EventHeaderV4{timestamp=1541626342000, eventType=EXT_DELETE_ROWS, serverId=41083490, headerLength=19, dataLength=8135, nextPosition=706863423, flags=0}
	at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:216)
	at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.nextEvent(EventDeserializer.java:184)
	at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:890)
	at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:559)

Caused by: com.github.shyiko.mysql.binlog.event.deserialization.MissingTableMapEventException: No TableMapEventData has been found for table id:412. Usually that means that you have started reading binary log 'within the logical event group' (e.g. from WRITE_ROWS and not proceeding TABLE_MAP
	at com.github.shyiko.mysql.binlog.event.deserialization.AbstractRowsEventDataDeserializer.deserializeRow(AbstractRowsEventDataDeserializer.java:98)
	at com.github.shyiko.mysql.binlog.event.deserialization.DeleteRowsEventDataDeserializer.deserializeRows(DeleteRowsEventDataDeserializer.java:64)
	at com.github.shyiko.mysql.binlog.event.deserialization.DeleteRowsEventDataDeserializer.deserialize(DeleteRowsEventDataDeserializer.java:56)
	at com.github.shyiko.mysql.binlog.event.deserialization.DeleteRowsEventDataDeserializer.deserialize(DeleteRowsEventDataDeserializer.java:32)
	at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:210)
	... 12 common frames omitted

a possible reason is:

table map event1
update event1
update event2 <---STOP HERE AND RE-CONNECT, make it missing table map event.
update event3
...
table map event2
update event...

PhantomThief avatar Nov 12 '18 07:11 PhantomThief

same issue occurred

ericshao avatar Aug 18 '21 15:08 ericshao

请问你解决了吗?啥原因?

enterwhat avatar Aug 23 '21 10:08 enterwhat

Is there any solution

zhangxiazengguai avatar Sep 03 '21 03:09 zhangxiazengguai

it's may be caused by the destination's long time trigger the source's timeout

enterwhat avatar Sep 04 '21 12:09 enterwhat