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

Oracle-Connector fails parsing a DDL statement

XMLWordPrintable

      While beeing in streaming mode the Oracle-Connector fails to handle the following DDL statement. Technically this statement is fine, thus I assume the connector should be able to handle it.

      alter table tdo_001 truncate subpartition INBOUND_FULL_PWORK update indexes;
      

      The full stacktrace looks like this and asked for creation of this ticket:

      2021-09-07 13:36:47,951 INFO   ||  Stopping down connector   [io.debezium.connector.common.BaseSourceTask]
      	... 17 more
      	at io.debezium.ddl.parser.oracle.generated.PlSqlParser.alter_table(PlSqlParser.java:64052)
      	at org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)
      Caused by: org.antlr.v4.runtime.InputMismatchException
      	... 8 more
      	at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:187)
      	at io.debezium.connector.oracle.logminer.LogMinerQueryResultProcessor.processResult(LogMinerQueryResultProcessor.java:169)
      	at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:297)
      	at io.debezium.connector.oracle.OracleSchemaChangeEventEmitter.emitSchemaChangeEvent(OracleSchemaChangeEventEmitter.java:81)
      	at io.debezium.connector.oracle.antlr.OracleDdlParser.parse(OracleDdlParser.java:63)
      	at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:82)
      	at io.debezium.connector.oracle.antlr.OracleDdlParser.parseTree(OracleDdlParser.java:32)
      	at io.debezium.connector.oracle.antlr.OracleDdlParser.parseTree(OracleDdlParser.java:68)
      	at io.debezium.ddl.parser.oracle.generated.PlSqlParser.unit_statement(PlSqlParser.java:2302)
      	at io.debezium.ddl.parser.oracle.generated.PlSqlParser.alter_table(PlSqlParser.java:64113)
      	at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
      	at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
      	at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544)
      	at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
      	at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43)
      mismatched input 'update' expecting {'DISABLE', 'ENABLE', ';'}
      Caused by: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'alter table tdo_001 truncate subpartition INBOUND_FULL_PWORK update indexes;'
      	at java.base/java.lang.Thread.run(Thread.java:834)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:122)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:159)
      	at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:63)
      	at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:211)
      	at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)
      org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
      2021-09-07 13:36:47,951 ERROR  ||  WorkerSourceTask{id=ora-src-replication-test-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]
      2021-09-07 13:36:47,951 INFO   ||  WorkerSourceTask{id=ora-src-replication-test-0} Finished commitOffsets successfully in 1 ms   [org.apache.kafka.connect.runtime.WorkerSourceTask]
      2021-09-07 13:36:47,950 INFO   ||  WorkerSourceTask{id=ora-src-replication-test-0} flushing 1 outstanding messages for offset commit   [org.apache.kafka.connect.runtime.WorkerSourceTask]
      

              ccranfor@redhat.com Chris Cranford
              codebude Raffael Herrmann (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: