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)