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

ParsingException for ALTER TABLE against a table that is unknown to the connector.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Minor
    • 1.6.0.CR1
    • None
    • oracle-connector
    • None

    Description

      Mining session stops with error:

      ERROR Mining session stopped due to the {} (io.debezium.connector.oracle.logminer.LogMinerHelper:489)
      io.debezium.text.ParsingException: Trying to alter table GP.SYS.LOGMNRLT_D3_TEMP$, which does not exist. Query: alter table SYS.LOGMNRLT_D3_TEMP$ modify (command varchar2(4000));
      at io.debezium.connector.oracle.antlr.listener.AlterTableParserListener.enterAlter_table(AlterTableParserListener.java:66)
      at io.debezium.ddl.parser.oracle.generated.PlSqlParser$Alter_tableContext.enterRule(PlSqlParser.java:63924)
      at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateEnterRule(ProxyParseTreeListenerUtil.java:46)
      at io.debezium.connector.oracle.antlr.listener.OracleDdlParserListener.enterEveryRule(OracleDdlParserListener.java:46)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.enterRule(ParseTreeWalker.java:41)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:25)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:87)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.parse(OracleDdlParser.java:63)
      at io.debezium.connector.oracle.OracleSchemaChangeEventEmitter.emitSchemaChangeEvent(OracleSchemaChangeEventEmitter.java:81)
      at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:297)
      at io.debezium.connector.oracle.logminer.LogMinerQueryResultProcessor.processResult(LogMinerQueryResultProcessor.java:166)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:188)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:159)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:122)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
      [2021-06-09 18:50:17,226] ERROR Producer failure (io.debezium.pipeline.ErrorHandler:31)
      io.debezium.text.ParsingException: Trying to alter table GP.SYS.LOGMNRLT_D3_TEMP$, which does not exist. Query: alter table SYS.LOGMNRLT_D3_TEMP$ modify (command varchar2(4000));
      at io.debezium.connector.oracle.antlr.listener.AlterTableParserListener.enterAlter_table(AlterTableParserListener.java:66)
      at io.debezium.ddl.parser.oracle.generated.PlSqlParser$Alter_tableContext.enterRule(PlSqlParser.java:63924)
      at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateEnterRule(ProxyParseTreeListenerUtil.java:46)
      at io.debezium.connector.oracle.antlr.listener.OracleDdlParserListener.enterEveryRule(OracleDdlParserListener.java:46)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.enterRule(ParseTreeWalker.java:41)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:25)
      at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
      at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:87)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.parse(OracleDdlParser.java:63)
      at io.debezium.connector.oracle.OracleSchemaChangeEventEmitter.emitSchemaChangeEvent(OracleSchemaChangeEventEmitter.java:81)
      at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:297)
      at io.debezium.connector.oracle.logminer.LogMinerQueryResultProcessor.processResult(LogMinerQueryResultProcessor.java:166)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:188)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:159)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:122)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
      

      There is a workaround with setting database.history.skip.unparseable.ddl to true to get connector running.

      Attachments

        Activity

          People

            ccranfor@redhat.com Chris Cranford
            ant0nk Anton Kondratev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: