-
Bug
-
Resolution: Done
-
Blocker
-
1.6.1.Final, 1.7.0.Beta1
-
None
-
False
-
False
-
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]