-
Bug
-
Resolution: Done
-
Major
-
2.4.2.Final, 2.5.0.CR1
-
None
-
False
-
None
-
False
-
Critical
In order to make your issue reports as actionable as possible, please provide the following information, depending on the issue type.
Bug report
For bug reports, provide this information, please:
What Debezium connector do you use and what version?
Debezium version: 2.4.2.Final , MySQL Connector
What is the connector configuration?
.with("name", "backoffice-mysql-connector")
.with("connector.class", "io.debezium.connector.mysql.MySqlConnector")
.with("offset.storage", "org.apache.kafka.connect.storage.FileOffsetBackingStore")
// .with("offset.storage.file.filename", offsetStorageTempFile.getAbsolutePath())
.with("offset.storage.file.filename", offSetFilePath)
.with("offset.flush.interval.ms", "60000")
.with("database.hostname", backofficeDbHost)
.with("database.port", backofficeDbPort)
.with("database.user", backofficeDbUsername)
.with("database.password", backofficeDbPassword)
.with("database.dbname", backofficeDbName)
.with("database.include.list", backofficeDbName)
.with("include.schema.changes", "false")
.with("database.allowPublicKeyRetrieval", "true")
.with("database.history.skip.unparseable.ddl", "true")
.with("database.schema.history.internal.store.only.captured.tables.ddl","true")
.with("database.schema.history.internal.store.only.captured.databases.ddl","true")
.with("database.server.id", System.currentTimeMillis())
.with("database.server.name",backofficeDbHost+"-"+backofficeDbName)
.with("table.whitelist", backofficeTableWhiteList)
.with("table.include.list","user_kyc")
.with("topic.prefix", "backoffice-connector")
.with("schema.history.internal",
"io.debezium.storage.file.history.FileSchemaHistory")
.with("schema.history.internal.file.filename",
dbHistoryPath)
.with("time.precision.mode","connect")
.with("event.processing.failure.handling.mode","skip")
.with("skip.messages.without.change","true")
.with("snapshot.mode","schema_only")
// Error Handling and Retry Policies
.with("errors.retry.delay", "1000") // 1 second delay between retries
.with("errors.retry.max.delay", "60000") // Maximum 60 seconds between retries
.with("errors.log.enable", "true") // Enable error logging
What is the captured database version and mode of depoyment?
(E.g. on-premises, with a specific cloud provider, etc.)
MySQL : 8.2 on-premises
What behaviour do you expect?
I would expect it to parse these privileges or DDL statements.
What behaviour do you see?
Exception while parsing certain DDL Grant statements.
Do you see the same behaviour using the latest relesead Debezium version?
(Ideally, also verify with latest Alpha/Beta/CR version)
Yes , same error in latest version aswell.
Do you have the connector logs, ideally from start till finish?
(You might be asked later to provide DEBUG/TRACE level log)
Yes.
.425180628+05:45 stdout F Caused by: io.debezium.DebeziumException: Error processing binlog event
2023-12-12T16:38:58.425184032+05:45 stdout F ... 7 common frames omitted
2023-12-12T16:38:58.425187779+05:45 stdout F Caused by: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'GRANT APPLICATION_PASSWORD_ADMIN, AUDIT_ABORT_EXEMPT, AUDIT_ADMIN, AUTHENTICATION_POLICY_ADMIN, BACKUP_ADMIN, BINLOG_ADMIN, BINLOG_ENCRYPTION_ADMIN, CLONE_ADMIN, CONNECTION_ADMIN, ENCRYPTION_KEY_ADMIN, FIREWALL_EXEMPT, FLUSH_OPTIMIZER_COSTS, FLUSH_STATUS, FLUSH_TABLES, FLUSH_USER_RESOURCES, GROUP_REPLICATION_ADMIN, GROUP_REPLICATION_STREAM, INNODB_REDO_LOG_ARCHIVE, INNODB_REDO_LOG_ENABLE, PASSWORDLESS_USER_ADMIN, PERSIST_RO_VARIABLES_ADMIN, REPLICATION_APPLIER, REPLICATION_SLAVE_ADMIN, RESOURCE_GROUP_ADMIN, RESOURCE_GROUP_USER, ROLE_ADMIN, SENSITIVE_VARIABLES_OBSERVER, SERVICE_CONNECTION_ADMIN, SESSION_VARIABLES_ADMIN, SET_USER_ID, SHOW_ROUTINE, SYSTEM_USER, SYSTEM_VARIABLES_ADMIN, TABLE_ENCRYPTION_ADMIN, TELEMETRY_LOG_ADMIN, XA_RECOVER_ADMIN ON . TO 'test_db'@'11.151.167.5''
stdout F no viable alternative at input 'GRANT APPLICATION_PASSWORD_ADMIN, AUDIT_ABORT_EXEMPT, AUDIT_ADMIN, AUTHENTICATION_POLICY_ADMIN'
stdout F at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43)
stdout F at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
stdout F at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:543)
stdout F at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310)
stdout F at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136)
stdout F at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:1261)
stdout F at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:979)
stdout F at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:74)
stdout F at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:46)
stdout F at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:78)
stdout F at io.debezium.connector.mysql.MySqlDatabaseSchema.parseDdl(MySqlDatabaseSchema.java:213)
stdout F at io.debezium.connector.mysql.MySqlDatabaseSchema.parseStreamingDdl(MySqlDatabaseSchema.java:199)
stdout F at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:590)
stdout F at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$15(MySqlStreamingChangeEventSource.java:894)
stdout F at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:372)
stdout F ... 6 common frames omitted
stdout F Caused by: org.antlr.v4.runtime.NoViableAltException: null
stdout F at org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2028)
stdout F at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:467)
stdout F at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393)
stdout F at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:1055)
stdout F ... 15 common frames omitted
stdout F
How to reproduce the issue using our tutorial deployment?
Just run the embeded debezium in spring boot and try to give these privileges on mysql db.
Feature request or enhancement
For feature requests or enhancements, provide this information, please:
Enhancement
Which use case/requirement will be addressed by the proposed feature?
It it resolve the bug : DDL parsing exception.
Implementation ideas (optional)
<Your answer>
- links to
-
RHEA-2024:129636 Red Hat build of Debezium 2.5.4 release