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

NPE caused by io.debezium.connector.oracle.antlr.listener.ColumnDefinitionParserListener.resolveColumnDataType

    XMLWordPrintable

Details

    • False
    • None
    • False
    • Hide
      alter table testtable modify testcol default 0; 
      Show
      alter table testtable modify testcol default 0;

    Description

      reason sql:  alter table testtable modify testcol default 0;

      the sql worked well on oracle , and debezium raised an exception.

      Bug report

       

      [2022-04-11 17:01:23,000] ERROR WorkerSourceTask{id=oracle-extract-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:190)
      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.oracle.xstream.LcrEventHandler.processLCR(LcrEventHandler.java:128)
              at oracle.streams.XStreamOut.XStreamOutReceiveLCRCallbackNative(Native Method)
              at oracle.streams.XStreamOut.receiveLCRCallback(XStreamOut.java:465)
              at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:108)
              at io.debezium.connector.oracle.xstream.XstreamStreamingChangeEventSource.execute(XstreamStreamingChangeEventSource.java:43)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:174)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:141)
              at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:109)
              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)
      Caused by: java.lang.NullPointerException
              at io.debezium.connector.oracle.antlr.listener.ColumnDefinitionParserListener.resolveColumnDataType(ColumnDefinitionParserListener.java:306)
              at io.debezium.connector.oracle.antlr.listener.ColumnDefinitionParserListener.resolveColumnDataType(ColumnDefinitionParserListener.java:98)
              at io.debezium.connector.oracle.antlr.listener.ColumnDefinitionParserListener.enterModify_col_properties(ColumnDefinitionParserListener.java:71)
              at io.debezium.ddl.parser.oracle.generated.PlSqlParser$Modify_col_propertiesContext.enterRule(PlSqlParser.java)
              at io.debezium.antlr.ProxyParseTreeListenerUtil.delegateEnterRule(ProxyParseTreeListenerUtil.java:46)
              at io.debezium.connector.oracle.antlr.listener.OracleDdlParserListener.enterEveryRule(OracleDdlParserListener.java:48)
              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 org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
              at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
              at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
              at org.antlr.v4.runtime.tree.ParseTreeWalker.walk(ParseTreeWalker.java:28)
              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:68)
              at io.debezium.connector.oracle.OracleSchemaChangeEventEmitter.emitSchemaChangeEvent(OracleSchemaChangeEventEmitter.java:85)
              at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:310)
              at io.debezium.connector.oracle.xstream.LcrEventHandler.dispatchSchemaChangeEvent(LcrEventHandler.java:235)
              at io.debezium.connector.oracle.xstream.LcrEventHandler.processLCR(LcrEventHandler.java:118)
              ... 12 more
      [2022-04-11 17:01:23,001] INFO Stopping down connector (io.debezium.connector.common.BaseSourceTask:238) 

       

       

      What Debezium connector do you use and what version?

      oracle-connector 1.9.0.Final

      What is the connector configuration?

      {
          "name": "test001-oracle-extract",
          "config":

      {         "connector.class": "io.debezium.connector.oracle.OracleConnector",         "db_type": "oracle",         "snapshot.locking.mode": "none",         "tasks.max": "1",         "database.history.kafka.topic": "test001-ods-his",         "transforms": "Reroute",         "database.tablename.case.insensitive": "true",         "log.mining.strategy": "online_catalog",         "include.schema.changes": "true",         "transforms.Reroute.topic.replacement": "test001-ods",         "decimal.handling.mode": "string",         "database.history.skip.unparseable.ddl": "true",         "database.out.server.name": "dbzxout",         "database.history.store.only.captured.tables.ddl": "true",         "database.oracle.version": "11",         "errors.log.enable": "true",         "database.user": "tdhextract",         "database.dbname": "orcl",         "transforms.Reroute.type": "io.debezium.transforms.ByLogicalTableRouter",         "database.connection.adapter": "xstream",         "database.history.kafka.bootstrap.servers": "test001:9092",         "database.server.name": "test001",         "transforms.Reroute.topic.regex": "(.*)",         "database.port": "1521",         "database.hostname": "192.168.1.2",         "database.password": "123456",         "name": "test001-oracle-extract",         "table.include.list": "testuser.testtable",         "snapshot.mode": "schema_only"     }

      ,
          "tasks": [
             

      {             "connector": "test001-oracle-extract",             "task": 0         }

          ],
          "type": "source"
      }

      What is the captured database version and mode of depoyment?

      oracle 11g xstream

      Attachments

        Issue Links

          Activity

            People

              anmohant Anisha Mohanty
              jian.zhu.86 jian zhu (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: