田元志 created FLINK-35375: --------------------------- Summary: About a question report "Failed to deserialize data of EventHeaderV4" of flink cdc2.4.2 Key: FLINK-35375 URL: https://issues.apache.org/jira/browse/FLINK-35375 Project: Flink Issue Type: Bug Reporter: 田元志
This is an error reported by Flink CDC data synchronization because a lot of data was missed during the process of synchronizing from polardb to selectdb. We restarted the task from the binlog position and reported the same error later. We saw from the Alibaba community that someone encountered this problem and provided a debezium parameter setting that can solve it. {code:java} connect.keep.live.interval.ms=3000{code} .We set this parameter but did not change any results, and as soon as the task was started, an error was immediately reported, as shown below: java.lang.RuntimeException: One or more fetchers have encountered exception at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherManager.checkErrors(SplitFetcherManager.java:225) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.connector.base.source.reader.SourceReaderBase.getNextFetch(SourceReaderBase.java:169) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.connector.base.source.reader.SourceReaderBase.pollNext(SourceReaderBase.java:130) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.connector.base.source.reader.SourceReaderBase.pollNext(SourceReaderBase.java:156) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.api.operators.SourceOperator.emitNext(SourceOperator.java:385) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.runtime.io.StreamTaskSourceInput.emitNext(StreamTaskSourceInput.java:68) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:65) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:542) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:231) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:831) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:780) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:935) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:914) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:728) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.runtime.taskmanager.Task.run(Task.java:550) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_341] Caused by: java.lang.RuntimeException: SplitFetcher thread 0 received unexpected exception while polling the records at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.runOnce(SplitFetcher.java:150) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.run(SplitFetcher.java:105) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_341] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_341] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_341] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_341] ... 1 more Caused by: org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped. at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:50) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.ververica.cdc.connectors.mysql.debezium.task.context.MySqlErrorHandler.setProducerThrowable(MySqlErrorHandler.java:85) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$ReaderThreadLifecycleListener.onEventDeserializationFailure(MySqlStreamingChangeEventSource.java:1553) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1064) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] ... 1 more Caused by: io.debezium.DebeziumException: Failed to deserialize data of EventHeaderV4\{timestamp=1715762712000, eventType=WRITE_ROWS, serverId=27545817, headerLength=19, dataLength=8069, nextPosition=394608452, flags=0} at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1488) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$ReaderThreadLifecycleListener.onEventDeserializationFailure(MySqlStreamingChangeEventSource.java:1553) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1064) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] ... 1 more Caused by: com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException: Failed to deserialize data of EventHeaderV4\{timestamp=1715762712000, eventType=WRITE_ROWS, serverId=27545817, headerLength=19, dataLength=8069, nextPosition=394608452, flags=0} at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:341) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.nextEvent(EventDeserializer.java:244) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$1.nextEvent(MySqlStreamingChangeEventSource.java:259) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1051) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] ... 1 more Caused by: com.github.shyiko.mysql.binlog.event.deserialization.MissingTableMapEventException: No TableMapEventData has been found for table id:73858. 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:109) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.event.deserialization.WriteRowsEventDataDeserializer.deserializeRows(WriteRowsEventDataDeserializer.java:64) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.event.deserialization.WriteRowsEventDataDeserializer.deserialize(WriteRowsEventDataDeserializer.java:56) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.event.deserialization.WriteRowsEventDataDeserializer.deserialize(WriteRowsEventDataDeserializer.java:32) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:335) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.nextEvent(EventDeserializer.java:244) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$1.nextEvent(MySqlStreamingChangeEventSource.java:259) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1051) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[hlkj-bigdata-1.0-SNAPSHOT.jar:?] ... 1 more -- This message was sent by Atlassian Jira (v8.20.10#820010)