-
Bug
-
Resolution: Done
-
Major
-
1.7.0.Final
-
None
-
False
-
False
-
-
MySQL 8.0.14 introduced the ability to have dual passwords for a user, and allows statements like
ALTER USER user@host IDENTIFIED BY 'newpassword' RETAIN CURRENT PASSWORD;
This is documented at https://dev.mysql.com/doc/refman/8.0/en/password-management.html#dual-passwords
However, this causes Debezium to crash, requiring an operator to parse the binary transaction log for the GTID after the statement, and to change the offsets in order for Debezium to skip over that transaction.
Specific crash exception is
level: ERROR
level_value: 40000
logger_name: org.apache.kafka.connect.runtime.WorkerTask
message: WorkerSourceTask{id=mysql-connector-tranform-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted
stack_trace: 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:42)at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:369)at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1118)at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:966)at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:606)at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:850)at java.base/java.lang.Thread.run(Thread.java:834)Caused by: io.debezium.DebeziumException: Error processing binlog event... 6 common frames omittedCaused by: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'ALTER USER 'monitor'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*REDACTED*' RETAIN CURRENT PASSWORD'mismatched input 'RETAIN' 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.reportInputMismatch(DefaultErrorStrategy.java:327)at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:915)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.connector.mysql.MySqlDatabaseSchema.parseDdl(MySqlDatabaseSchema.java:210)at io.debezium.connector.mysql.MySqlDatabaseSchema.parseStreamingDdl(MySqlDatabaseSchema.java:197)at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:574)at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:352)... 5 common frames omittedCaused by: org.antlr.v4.runtime.InputMismatchException: nullat org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:900)... 12 common frames omitted
stream: stdout
thread_name: task-thread-mysql-connector-tranform-0