MOBIN created FLINK-35058:
-----------------------------
Summary: Encountered change event for table db.table whose schema
isn't known to this connector
Key: FLINK-35058
URL: https://issues.apache.org/jira/browse/FLINK-35058
Project: Flink
Issue Type: Bug
Components: Flink CDC
Affects Versions: 1.17.1
Reporter: MOBIN
Flink1.17.1
flink-cdc:flink-sql-connector-mysql-cdc-2.4.1.jar
{code:java}
CREATE TABLE `test_cdc_timestamp` (
`id` BIGINT COMMENT '主键id',
....
proctime AS PROCTIME(),
PRIMARY KEY(id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = 'xxxxx',
'scan.startup.mode' = 'timestamp',
'scan.startup.timestamp-millis' = '1712419200000' ,
'port' = '3306',
'username' = 'xxx',
'password' = 'xxx',
'database-name' = 'xxtablename',
'table-name' = 'xxdatabase',
'scan.incremental.snapshot.enabled' = 'false',
'debezium.snapshot.locking.mode' = 'none',
'server-id' = '5701',
'server-time-zone' = 'Asia/Shanghai',
'debezium.skipped.operations' = 'd'
); {code}
When I use 'scan.startup.mode' = 'latent-offset 'or'initial' to synchronize
data normally, when I use 'scan.startup.mode' = 'timestamp', the following
error is reported
{code:java}
2024-04-09 11:11:15.619 [debezium-engine] INFO io.debezium.util.Threads -
Requested thread factory for connector MySqlConnector, id = mysql_binlog_source
named = change-event-source-coordinator
2024-04-09 11:11:15.621 [debezium-engine] INFO io.debezium.util.Threads -
Creating thread
debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator
2024-04-09 11:11:15.629
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.pipeline.ChangeEventSourceCoordinator - Metrics registered
2024-04-09 11:11:15.630
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.pipeline.ChangeEventSourceCoordinator - Context created
2024-04-09 11:11:15.642
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlSnapshotChangeEventSource - No previous
offset has been found
2024-04-09 11:11:15.642
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlSnapshotChangeEventSource - According
to the connector configuration only schema will be snapshotted
2024-04-09 11:11:15.644
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.pipeline.ChangeEventSourceCoordinator - Snapshot ended with
SnapshotResult [status=SKIPPED, offset=null]
2024-04-09 11:11:15.652
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.util.Threads - Requested thread factory for connector
MySqlConnector, id = mysql_binlog_source named = binlog-client
2024-04-09 11:11:15.656
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.pipeline.ChangeEventSourceCoordinator - Starting streaming
2024-04-09 11:11:15.682
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlStreamingChangeEventSource - GTID set
purged on server:
0969640a-1d48-11ed-b6cf-28dee561557c:1-27603868993,70958f24-2253-11eb-891d-f875a48ad7b1:1-50323,ec1e6593-2251-11eb-9c18-f875a48ad539:1-25345454762
2024-04-09 11:11:15.682
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Skip 0
events on streaming start
2024-04-09 11:11:15.682
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Skip 0
rows on streaming start
2024-04-09 11:11:15.683
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.util.Threads - Creating thread
debezium-mysqlconnector-mysql_binlog_source-binlog-client
2024-04-09 11:11:15.686 [blcxxxx.mysql.com:3306] INFO io.debezium.util.Threads
- Creating thread debezium-mysqlconnector-mysql_binlog_source-binlog-client
2024-04-09 11:11:15.700 [blcxxxx.mysql.com:3306] INFO
io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Connected to
MySQL binlog at xxx.mysql.com:3306, starting at MySqlOffsetContext
[sourceInfoSchema=Schema{io.debezium.connector.mysql.Source:STRUCT},
sourceInfo=SourceInfo [currentGtid=null, currentBinlogFilename=,
currentBinlogPosition=0, currentRowNumber=0, serverId=0, sourceTime=null,
threadId=-1, currentQuery=null, tableIds=[], databaseName=null],
snapshotCompleted=false, transactionContext=TransactionContext
[currentTransactionId=null, perTableEventCount={}, totalEventCount=0],
restartGtidSet=null, currentGtidSet=null, restartBinlogFilename=,
restartBinlogPosition=0, restartRowsToSkip=0, restartEventsToSkip=0,
currentEventLengthInBytes=0, inTransaction=false, transactionId=null,
incrementalSnapshotContext =IncrementalSnapshotContext [windowOpened=false,
chunkEndPosition=null, dataCollectionsToSnapshot=[], lastEventKeySent=null,
maximumKey=null]]
2024-04-09 11:11:15.700
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Waiting
for keepalive thread to start
2024-04-09 11:11:15.701 [blcxxxx.mysql.com:3306] INFO io.debezium.util.Threads
- Creating thread debezium-mysqlconnector-mysql_binlog_source-binlog-client
2024-04-09 11:11:15.701
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Keepalive
thread is running
2024-04-09 11:11:15.818 [blcxxxx.mysql.com:3306] ERROR
io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Encountered
change event 'Event{header=EventHeaderV4{timestamp=1711939504000,
eventType=TABLE_MAP, serverId=431777, headerLength=19, dataLength=81,
nextPosition=981190, flags=0}, data=TableMapEventData{tableId=933966,
database='xxxdatabase', table='xxxtablename', columnTypes=8, 15, 8, 15, 8, 3,
2, 1, -11, 18, 18, 1, columnMetadata=0, 400, 0, 1024, 0, 0, 0, 0, 4, 0, 0, 0,
columnNullability={4, 6, 8, 11}, eventMetadata=null}}' at offset
{transaction_id=null, file=mysql-bin.016482, pos=981027,
gtids=0969640a-1d48-11ed-b6cf-28dee561557c:27603868994-27603870019,
server_id=431777, event=1} for table xxxdatabase.xxxtablename whose schema
isn't known to this connector. One possible cause is an incomplete database
history topic. Take a new snapshot in this case.
Use the mysqlbinlog tool to view the problematic event: mysqlbinlog
--start-position=981090 --stop-position=981190 --verbose mysql-bin.016482
2024-04-09 11:11:15.819 [blcxxxx.mysql.com:3306] ERROR
io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Error during
binlog processing. Last offset stored = {transaction_id=null,
file=mysql-bin.016482, pos=981027,
gtids=0969640a-1d48-11ed-b6cf-28dee561557c:27603868994-27603870019,
server_id=431777, event=1}, binlog reader near position =
mysql-bin.016482/981090
2024-04-09 11:11:15.821 [blcxxxx.mysql.com:3306] ERROR
io.debezium.pipeline.ErrorHandler - Producer failure
io.debezium.DebeziumException: Error processing binlog event
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:429)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:1095)
at
com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246)
at
com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072)
at
com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631)
at
com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.debezium.DebeziumException: Encountered change event for table
xxdatabase.xxtablename whose schema isn't known to this connector
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.informAboutUnknownTableIfRequired(MySqlStreamingChangeEventSource.java:753)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.informAboutUnknownTableIfRequired(MySqlStreamingChangeEventSource.java:819)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleUpdateTableMetadata(MySqlStreamingChangeEventSource.java:720)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$13(MySqlStreamingChangeEventSource.java:1046)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:408)
... 6 common frames omitted
2024-04-09 11:11:15.821 [blcxxxx.mysql.com:3306] INFO
io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Error processing
binlog event, and propagating to Kafka Connect so it stops this connector.
Future binlog events read before connector is shutdown will be ignored.
2024-04-09 11:11:16.124 [debezium-engine] INFO
io.debezium.embedded.EmbeddedEngine - Stopping the task and engine
2024-04-09 11:11:16.124 [debezium-engine] INFO
io.debezium.connector.common.BaseSourceTask - Stopping down connector
2024-04-09 11:11:16.216
[debezium-mysqlconnector-mysql_binlog_source-change-event-source-coordinator]
INFO io.debezium.pipeline.ChangeEventSourceCoordinator - Finished streaming
2024-04-09 11:11:16.216 [blcxxxx.mysql.com:3306] INFO
io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Stopped reading
binlog after 0 events, last recorded offset: {transaction_id=null,
file=mysql-bin.016482, pos=981027,
gtids=0969640a-1d48-11ed-b6cf-28dee561557c:27603868994-27603870019,
server_id=431777, event=71904}
2024-04-09 11:11:16.218 [pool-10-thread-1] INFO
io.debezium.jdbc.JdbcConnection - Connection gracefully closed
2024-04-09 11:11:16.221 [debezium-engine] ERROR
com.ververica.cdc.debezium.internal.Handover - Reporting error:
com.ververica.cdc.connectors.shaded.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)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:429)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:1095)
at
com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246)
at
com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072)
at
com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631)
at
com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.debezium.DebeziumException: Error processing binlog event
... 7 common frames omitted
Caused by: io.debezium.DebeziumException: Encountered change event for table
xxdatabase.xxtablename whose schema isn't known to this connector
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.informAboutUnknownTableIfRequired(MySqlStreamingChangeEventSource.java:753)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.informAboutUnknownTableIfRequired(MySqlStreamingChangeEventSource.java:819)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleUpdateTableMetadata(MySqlStreamingChangeEventSource.java:720)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$13(MySqlStreamingChangeEventSource.java:1046)
at
io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:408)
... 6 common frames omitted
2024-04-09 11:11:16.223 [Source: source_ascribe_all_result_data[1] -> Calc[2]
-> Sink: print[3] (1/1)#0] INFO io.debezium.embedded.EmbeddedEngine -
Stopping the embedded engine
2024-04-09 11:11:16.227 [Source: source_ascribe_all_result_data[1] -> Calc[2]
-> Sink: print[3] (1/1)#0] INFO io.debezium.embedded.EmbeddedEngine -
Stopping the embedded engine
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)