-
Bug
-
Resolution: Done
-
Major
-
2.2.0.CR1
-
False
-
None
-
False
-
Important
Bug report
The parsing of DDL 'CREATE TABLE t (c NATIONAL CHAR)' failed for the internal NullPointerException.
What Debezium connector do you use and what version?
debezium-connector-mysql:2.2.0.CR1
What is the connector configuration?
props.put("name", "abc");
props.put("connector.class", "io.debezium.connector.mysql.MySqlConnector");
props.put("database.hostname", "127.0.0.1");
props.put("database.port", "53306");
props.put("database.user", "root");
props.put("database.password", "password");
props.put("database.server.id", "100000");
props.put("database.server.name", "abc");
props.put("database.allowPublicKeyRetrieval", "true");
What is the captured database version and mode of depoyment?
On-prem, 8.0.30 MySQL Community Server
What behaviour do you expect?
SQL should be parsed as expected.
What behaviour do you see?
Internal NullPointerException was thrown and the replication stopped.
Do you see the same behaviour using the latest relesead Debezium version?
The version I used was the latest one.
Do you have the connector logs, ideally from start till finish?
11:16:31.528 [blc-127.0.0.1:53306] DEBUG io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Received query command: Event{header=EventHeaderV4{timestamp=1681874191000, eventType=QUERY, serverId=1, headerLength=19, dataLength=119, nextPosition=875, flags=0}, data=QueryEventData{threadId=9, executionTime=0, errorCode=0, database='test_charset', sql='create table ttt (c NATIONAL CHAR)'}} 11:16:31.528 [blc-127.0.0.1:53306] DEBUG io.debezium.connector.mysql.MySqlDatabaseSchema - Processing streaming DDL 'create table ttt (c NATIONAL CHAR)' for database 'test_charset' 11:16:31.539 [blc-127.0.0.1:53306] ERROR io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Error during binlog processing. Last offset stored = {transaction_id=null, file=binlog.000008, pos=737, server_id=1, event=1}, binlog reader near position = binlog.000008/737 11:16:31.542 [blc-127.0.0.1:53306] ERROR io.debezium.pipeline.ErrorHandler - Producer failure io.debezium.DebeziumException: Error processing binlog event at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:392) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$27(MySqlStreamingChangeEventSource.java:922) 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.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.NullPointerException: Cannot invoke "io.debezium.connector.mysql.antlr.listener.DefaultValueParserListener.exitDefaultValue(boolean)" because "this.defaultValueListener" is null at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.lambda$exitColumnDefinition$1(ColumnDefinitionParserListener.java:94) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.runIfNotNull(MySqlAntlrDdlParser.java:409) at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.exitColumnDefinition(ColumnDefinitionParserListener.java:93) at io.debezium.ddl.parser.mysql.generated.MySqlParser$ColumnDefinitionContext.exitRule(MySqlParser.java:8860) at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateExitRule(ProxyParseTreeListenerUtil.java:64) at io.debezium.connector.mysql.antlr.listener.MySqlAntlrDdlParserListener.exitEveryRule(MySqlAntlrDdlParserListener.java:106) at org.antlr.v4.runtime.tree.ParseTreeWalker.exitRule(ParseTreeWalker.java:63) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:38) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:83) at io.debezium.connector.mysql.MySqlDatabaseSchema.parseDdl(MySqlDatabaseSchema.java:213) at io.debezium.connector.mysql.MySqlDatabaseSchema.parseStreamingDdl(MySqlDatabaseSchema.java:199) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:590) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$15(MySqlStreamingChangeEventSource.java:893) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:372) ... 6 common frames omitted 11:16:31.543 [blc-127.0.0.1:53306] 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. 11:16:31.701 [pool-8-thread-1] DEBUG io.debezium.connector.base.ChangeEventQueue - checking for more records... 11:16:31.701 [pool-8-thread-1] DEBUG io.debezium.embedded.EmbeddedEngine - Embedded engine returned from polling task for records 11:16:31.701 [pool-8-thread-1] DEBUG io.debezium.embedded.EmbeddedEngine - Received no records from the task 11:16:31.701 [pool-8-thread-1] DEBUG io.debezium.embedded.EmbeddedEngine - Embedded engine is polling task for records on thread Thread[pool-8-thread-1,5,main] 11:16:31.701 [pool-8-thread-1] DEBUG io.debezium.connector.base.ChangeEventQueue - polling records... 11:16:31.701 [pool-8-thread-1] INFO io.debezium.embedded.EmbeddedEngine - Stopping the task and engine 11:16:31.701 [pool-8-thread-1] INFO io.debezium.connector.common.BaseSourceTask - Stopping down connector 4月 19, 2023 11:16:31 上午 com.github.shyiko.mysql.binlog.BinaryLogClient$5 run 信息: threadExecutor is shut down, terminating keepalive thread 11:16:31.765 [blc-127.0.0.1:53306] INFO io.debezium.connector.mysql.MySqlStreamingChangeEventSource - Stopped reading binlog after 0 events, last recorded offset: {transaction_id=null, file=binlog.000008, pos=737, server_id=1, event=1} 11:16:31.765 [debezium-mysqlconnector-MyConn2-change-event-source-coordinator] INFO io.debezium.pipeline.ChangeEventSourceCoordinator - Finished streaming 11:16:31.768 [pool-11-thread-1] INFO io.debezium.jdbc.JdbcConnection - Connection gracefully closed 11:16:31.769 [pool-8-thread-1] DEBUG io.debezium.connector.common.BaseSourceTask - Setting task state to 'STOPPED', previous state was 'RUNNING' 11:16:31.770 [pool-8-thread-1] INFO com.foxlake.debezium.S3OffsetBackingStore - Stopped S3OffsetBackingStore 11:16:31.770 [pool-8-thread-1] ERROR io.debezium.embedded.EmbeddedEngine - Error while trying to run connector class 'io.debezium.connector.mysql.MySqlConnector' 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:72) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:392) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$27(MySqlStreamingChangeEventSource.java:922) 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.base/java.lang.Thread.run(Thread.java:833) Caused by: io.debezium.DebeziumException: Error processing binlog event ... 7 common frames omitted Caused by: java.lang.NullPointerException: Cannot invoke "io.debezium.connector.mysql.antlr.listener.DefaultValueParserListener.exitDefaultValue(boolean)" because "this.defaultValueListener" is null at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.lambda$exitColumnDefinition$1(ColumnDefinitionParserListener.java:94) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.runIfNotNull(MySqlAntlrDdlParser.java:409) at io.debezium.connector.mysql.antlr.listener.ColumnDefinitionParserListener.exitColumnDefinition(ColumnDefinitionParserListener.java:93) at io.debezium.ddl.parser.mysql.generated.MySqlParser$ColumnDefinitionContext.exitRule(MySqlParser.java:8860) at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateExitRule(ProxyParseTreeListenerUtil.java:64) at io.debezium.connector.mysql.antlr.listener.MySqlAntlrDdlParserListener.exitEveryRule(MySqlAntlrDdlParserListener.java:106) at org.antlr.v4.runtime.tree.ParseTreeWalker.exitRule(ParseTreeWalker.java:63) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:38) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:36) at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:83) at io.debezium.connector.mysql.MySqlDatabaseSchema.parseDdl(MySqlDatabaseSchema.java:213) at io.debezium.connector.mysql.MySqlDatabaseSchema.parseStreamingDdl(MySqlDatabaseSchema.java:199) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:590) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$15(MySqlStreamingChangeEventSource.java:893) at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:372) ... 6 common frames omitted
How to reproduce the issue using our tutorial deployment?
Just execute the SQL 'CREATE TABLE t (c NATIONAL CHAR)' and start a replication procedure on Debezium.
- links to
-
RHEA-2023:120698 Red Hat build of Debezium 2.3.4 release