Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-6019

DDL parse fail for role revoke with "user-like" role name

    XMLWordPrintable

Details

    • False
    • None
    • False

    Description

      Bug report

      What Debezium connector do you use and what version?

      MySQL connector 1.9.7.Final

      What is the connector configuration?

      Irrelevant in this case.

      What is the captured database version and mode of depoyment?

      Google CloudSQL

      What behaviour do you expect?

      Debezium parses DDL

      What behaviour do you see?

      2023-01-17 13:38:46.798 WARN [debezium-export,,] 2115912 — [connect-tasks-1] c.g.h.s.c.services.ConnectorRestarter : Failing connector: [viplevel @ 0.0.0.0:40268] RUNNING (id=0,worker=0.0.0.0:40268,state=FAILED,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:50)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:374)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:874)
      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:829)
      Caused by: io.debezium.DebeziumException: Error processing binlog event
      ... 7 more
      Caused by: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'revoke `cloudsqlsuperuser`@`%` from `sarmonitoring`@`10.90.29.%`'
      no viable alternative at input 'revoke `cloudsqlsuperuser`@`%`'
      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.sqlStatements(MySqlParser.java:1228)
      at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:950)
      at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:73)
      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:224)
      at io.debezium.connector.mysql.MySqlDatabaseSchema.parseStreamingDdl(MySqlDatabaseSchema.java:210)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:571)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$14(MySqlStreamingChangeEventSource.java:846)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:354)
      ... 6 more
      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.execATN(ParserATNSimulator.java:467)
      at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393)
      at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:1026)
      ... 15 more

      Do you see the same behaviour using the latest relesead Debezium version?

      Haven't tried, but i checked the MySQLParser.g4 sources in main branch, and the issue is still there as far as I can tell.

      Do you have the connector logs, ideally from start till finish?

      See above.

      How to reproduce the issue using our tutorial deployment?

      Bug is best reproduced by unit tests, trying to parse the DDL 'revoke `cloudsqlsuperuser`@`%` from `sarmonitoring`@`10.90.29.%`'

       

      Attachments

        Activity

          People

            anmohant Anisha Mohanty
            tommy.karlsson Tommy Karlsson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: