-
Bug
-
Resolution: Done
-
Major
-
1.6.0.Final
-
None
-
False
-
False
-
Undefined
-
Since upgrading to 1.6.0 of the MySQL connector, we're receiving the following error, and the connector is stopping, even with database.history.skip.unparseable.ddl enabled.
Log:
{{[2021-07-07 15:22:51,461] ERROR Unexpected exception while processing record 'ConsumerRecord(topic = mycompany_mobile.schema-changes, partition = 0, leaderEpoch = 4, offset = 4041, CreateTime = 1625171948358, serialized key size = -1, serialized value size = 989, headers = RecordHeaders(headers = [], isReadOnly = false), key = null, value = \{[2021-07-07 15:22:51,461] ERROR Unexpected exception while processing record 'ConsumerRecord(topic = mycompany_mobile.schema-changes, partition = 0, leaderEpoch = 4, offset = 4041, CreateTime = 1625171948358, serialized key size = -1, serialized value size = 989, headers = RecordHeaders(headers = [], isReadOnly = false), key = null, value = { "source" : { "server" : "mycompany_mobile" }, "position" : \{ "transaction_id" : null, "ts_sec" : 1625171948, "file" : "mysql-bin-changelog.093103", "pos" : 32449, "gtids" : "6a07e646-714b-11eb-b649-0a28b9d97b11:1-906072", "server_id" : 546533895 }, "databaseName" : "appraisal", "ddl" : "CREATE DEFINER=`myUser`@`%` PROCEDURE `tableAFetchCount`(\n\n in p_uniqueID int\n \n\n)\nBEGIN\n\n\tselect count(*) into @propCount from tableA where uniqueID = p_uniqueID;\n select count(*) into @completeCount from tableA where uniqueID = p_uniqueID and isComplete = 1;\n \n select uniqueID,\n @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct\n \n \n where uniqueID = p_uniqueID;\n\n\nEND", "tableChanges" : [ ]})' (io.debezium.relational.history.KafkaDatabaseHistory:319)io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE DEFINER=`myUser`@`%` PROCEDURE `tableAFetchCount`( in p_uniqueID int}} {{)BEGIN select count(*) into @propCount from tableA where uniqueID = p_uniqueID; select count(*) into @completeCount from tableA where uniqueID = p_uniqueID and isComplete = 1;}} {{ select uniqueID, @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct}}{{ where uniqueID = p_uniqueID;END'no viable alternative at input 'select uniqueID,\n @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct\n \n \n where' at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310) at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136) at io.debezium.ddl.parser.mysql.generated.MySqlParser.querySpecification(MySqlParser.java:29764) at io.debezium.ddl.parser.mysql.generated.MySqlParser.selectStatement(MySqlParser.java:25248) at io.debezium.ddl.parser.mysql.generated.MySqlParser.dmlStatement(MySqlParser.java:1782) at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatement(MySqlParser.java:1253) at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:1154) at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:918) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:72) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:45) at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:82) at io.debezium.relational.history.AbstractDatabaseHistory.lambda$recover$1(AbstractDatabaseHistory.java:135) at io.debezium.relational.history.KafkaDatabaseHistory.recoverRecords(KafkaDatabaseHistory.java:307) at io.debezium.relational.history.AbstractDatabaseHistory.recover(AbstractDatabaseHistory.java:102) at io.debezium.relational.HistorizedRelationalDatabaseSchema.recover(HistorizedRelationalDatabaseSchema.java:49) at io.debezium.connector.mysql.MySqlConnectorTask.validateAndLoadDatabaseHistory(MySqlConnectorTask.java:331) at io.debezium.connector.mysql.MySqlConnectorTask.start(MySqlConnectorTask.java:103) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130) at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:225) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:182) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:231) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)Caused by: org.antlr.v4.runtime.NoViableAltException at org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2026) at org.antlr.v4.runtime.atn.ParserATNSimulator.execATNWithFullContext(ParserATNSimulator.java:675) at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:505) at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393) at io.debezium.ddl.parser.mysql.generated.MySqlParser.querySpecification(MySqlParser.java:29629) ... 23 moreio.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE DEFINER=`myUser`@`%` PROCEDURE `tableAFetchCount`( in p_uniqueID int}} {{)BEGIN select count(*) into @propCount from tableA where uniqueID = p_uniqueID; select count(*) into @completeCount from tableA where uniqueID = p_uniqueID and isComplete = 1;}} {{ select uniqueID, @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct}}{{ where uniqueID = p_uniqueID;END'extraneous input 'END' expecting \{<EOF>, '--'} at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportUnwantedToken(DefaultErrorStrategy.java:377) at org.antlr.v4.runtime.DefaultErrorStrategy.singleTokenDeletion(DefaultErrorStrategy.java:548) at org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:266) at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:923) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:72) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:45) at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:82) at io.debezium.relational.history.AbstractDatabaseHistory.lambda$recover$1(AbstractDatabaseHistory.java:135) at io.debezium.relational.history.KafkaDatabaseHistory.recoverRecords(KafkaDatabaseHistory.java:307) at io.debezium.relational.history.AbstractDatabaseHistory.recover(AbstractDatabaseHistory.java:102) at io.debezium.relational.HistorizedRelationalDatabaseSchema.recover(HistorizedRelationalDatabaseSchema.java:49) at io.debezium.connector.mysql.MySqlConnectorTask.validateAndLoadDatabaseHistory(MySqlConnectorTask.java:331) at io.debezium.connector.mysql.MySqlConnectorTask.start(MySqlConnectorTask.java:103) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130) at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:225) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:182) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:231) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)[2021-07-07 15:22:51,468] ERROR WorkerSourceTask\{id=source-mycompany-mobile3-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:184)io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE DEFINER=`myUser`@`%` PROCEDURE `tableAFetchCount`( in p_uniqueID int}} {{)BEGIN select count(*) into @propCount from tableA where uniqueID = p_uniqueID; select count(*) into @completeCount from tableA where uniqueID = p_uniqueID and isComplete = 1;}} {{ select uniqueID, @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct}}{{ where uniqueID = p_uniqueID;END'no viable alternative at input 'select uniqueID,\n @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct\n \n \n where' at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310) at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136) at io.debezium.ddl.parser.mysql.generated.MySqlParser.querySpecification(MySqlParser.java:29764) at io.debezium.ddl.parser.mysql.generated.MySqlParser.selectStatement(MySqlParser.java:25248) at io.debezium.ddl.parser.mysql.generated.MySqlParser.dmlStatement(MySqlParser.java:1782) at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatement(MySqlParser.java:1253) at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:1154) at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:918) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:72) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:45) at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:82) at io.debezium.relational.history.AbstractDatabaseHistory.lambda$recover$1(AbstractDatabaseHistory.java:135) at io.debezium.relational.history.KafkaDatabaseHistory.recoverRecords(KafkaDatabaseHistory.java:307) at io.debezium.relational.history.AbstractDatabaseHistory.recover(AbstractDatabaseHistory.java:102) at io.debezium.relational.HistorizedRelationalDatabaseSchema.recover(HistorizedRelationalDatabaseSchema.java:49) at io.debezium.connector.mysql.MySqlConnectorTask.validateAndLoadDatabaseHistory(MySqlConnectorTask.java:331) at io.debezium.connector.mysql.MySqlConnectorTask.start(MySqlConnectorTask.java:103) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130) at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:225) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:182) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:231) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)Caused by: org.antlr.v4.runtime.NoViableAltException at org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2026) at org.antlr.v4.runtime.atn.ParserATNSimulator.execATNWithFullContext(ParserATNSimulator.java:675) at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:505) at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393) at io.debezium.ddl.parser.mysql.generated.MySqlParser.querySpecification(MySqlParser.java:29629) ... 23 moreio.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE DEFINER=`myUser`@`%` PROCEDURE `tableAFetchCount`( in p_uniqueID int}} {{)BEGIN select count(*) into @propCount from tableA where uniqueID = p_uniqueID; select count(*) into @completeCount from tableA where uniqueID = p_uniqueID and isComplete = 1;}} {{ select uniqueID, @propCount as propCount, @completeCount as completeCount, @completeCount/ @propCount * 100 as completePct}}{{ where uniqueID = p_uniqueID;END'extraneous input 'END' expecting \{<EOF>, '--'} at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportUnwantedToken(DefaultErrorStrategy.java:377) at org.antlr.v4.runtime.DefaultErrorStrategy.singleTokenDeletion(DefaultErrorStrategy.java:548) at org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:266) at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:923) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:72) at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:45) at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:82) at io.debezium.relational.history.AbstractDatabaseHistory.lambda$recover$1(AbstractDatabaseHistory.java:135) at io.debezium.relational.history.KafkaDatabaseHistory.recoverRecords(KafkaDatabaseHistory.java:307) at io.debezium.relational.history.AbstractDatabaseHistory.recover(AbstractDatabaseHistory.java:102) at io.debezium.relational.HistorizedRelationalDatabaseSchema.recover(HistorizedRelationalDatabaseSchema.java:49) at io.debezium.connector.mysql.MySqlConnectorTask.validateAndLoadDatabaseHistory(MySqlConnectorTask.java:331) at io.debezium.connector.mysql.MySqlConnectorTask.start(MySqlConnectorTask.java:103) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130) at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:225) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:182) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:231) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)}} {{Config:}} {{{}} {{ "connector.class": "io.debezium.connector.mysql.MySqlConnector",}} {{ "database.history.consumer.sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";",}} {{ "database.history.consumer.sasl.mechanism": "SCRAM-SHA-512",}} {{ "database.history.consumer.security.protocol": "SASL_SSL",}} {{ "database.history.kafka.bootstrap.servers": "kafka-server:9096",}} {{ "database.history.kafka.topic": "mycompany_mobile.schema-changes",}} {{ "database.history.producer.buffer.memory": "10485760",}} {{ "database.history.producer.sasl.jaas.config": "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";",}} {{ "database.history.producer.sasl.mechanism": "SCRAM-SHA-512",}} {{ "database.history.producer.security.protocol": "SASL_SSL",}} {{ "database.history.skip.unparseable.ddl": "true",}} {{ "database.hostname": "dbserver.mycompany.com",}} {{ "database.include.list": "mydatabase",}} {{ "database.password": "pass",}} {{ "database.port": "3306",}} {{ "database.server.id": "1010",}} {{ "database.server.name": "mycompany_mobile",}} {{ "database.user": "kafkauser",}} {{ "internal.key.converter": "org.apache.kafka.connect.json.JsonConverter",}} {{ "internal.value.converter": "org.apache.kafka.connect.json.JsonConverter",}} {{ "key.converter": "io.confluent.connect.avro.AvroConverter",}} {{ "key.converter.schema.registry.url": "http://schema-registry.mycompany.com",}} {{ "name": "source-mycompany-mobile3",}} {{ "snapshot.mode": "schema_only",}} {{ "table.exclude.list": ".*[Bb]ackup.*,.*_[0-9]\{6\\,8}",}} {{ "tasks.max": "1",}} {{ "topic.creation.default.cleanup.policy": "delete",}} {{ "topic.creation.default.compression.type": "lz4",}} {{ "topic.creation.default.partitions": "10",}} {{ "topic.creation.default.replication.factor": "2",}} {{ "topic.creation.default.retention.bytes": "-1",}} {{ "topic.creation.default.retention.ms": "2592000000",}} {{ "topic.creation.groups": "schema",}} {{ "topic.creation.schema.include": "mycompany_mobile.schema-changes",}} {{ "topic.creation.schema.partitions": "1",}} {{ "value.converter": "io.confluent.connect.avro.AvroConverter",}} {{ "value.converter.schema.registry.url": "http://schema-registry.mycompany.com"}} {{}}}