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

Debezium Oracle Connector fails with ParsingException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • None
    • 2.7.0.Final
    • oracle-connector
    • None
    • False
    • None
    • False
    • Moderate

      Bug report

      For bug reports, provide this information, please:

      What Debezium connector do you use and what version?

      Oracle v2.7

      What is the connector configuration?

       

      {
        "connector.class" : "io.debezium.connector.oracle.OracleConnector",  
        "tasks.max" : "1",  
        "database.hostname" : "{{ORACLE_HOST}}",  
        "database.port" : "{{ORACLE_PORT}}",  
        "database.user" : "${file:/secrets/debezium.properties:oracleUser}",  
        "database.password" : "${file:/secrets/debezium.properties:oraclePassword}",
        "database.dbname" : "{{ORACLE_DBNAME}}",
        "topic.prefix" : "{{COMPANY}}.{{ENV}}.debezium.ingestion.oracle",
          "topic.heartbeat.prefix": "debezium-heartbeat",
        "snapshot.mode": "{{SNAPSHOT_MODE}}",
          "transforms": "filter_MY_TABLE",
        "transforms.filter_MY_TABLE.type": "io.debezium.transforms.Filter",
        "transforms.filter_MY_TABLE.language": "jsr223.groovy",
        "transforms.filter_MY_TABLE.topic.regex": "{{COMPANY}}.{{ENV}}.debezium.ingestion.oracle.NAV.MY_TABLE",
        "transforms.filter_MY_TABLE.condition": "!value || (value.after && value.after.NPOLIZA) || (!value.after && value.before && value.before.NPOLIZA)",
        "skip.messages.without.change": true,
        "decimal.handling.mode": "string",
        "interval.handling.mode": "string",
        "heartbeat.interval.ms": 5000,
        "signal.enabled.channels": "kafka",
          "signal.data.collection": "{{ORACLE_DBNAME}}.SVC_DEBEZIUM.DEBEZIUM_SIGNAL",
          "signal.kafka.bootstrap.servers": "{{KAFKA_BOOTSTRAP_SERVERS}}",
        "signal.kafka.topic": "{{COMPANY}}.{{ENV}}.debezium.internal.signals",
          "signal.kafka.groupId": "debezium",
        "signal.consumer.security.protocol": "SASL_SSL",
        "signal.consumer.sasl.mechanism": "SCRAM-SHA-256",
        "signal.consumer.sasl.jaas.config": "${file:/secrets/debezium.properties:kafkaSaslJaasConfig}",
        "notification.enabled.channels": "sink",
        "notification.sink.topic.name": "{{COMPANY}}.{{ENV}}.debezium.internal.notifications",
        "topic.transaction": "__transactions__",
        "schema.history.internal.kafka.bootstrap.servers" : "{{KAFKA_BOOTSTRAP_SERVERS}}", 
        "schema.history.internal.kafka.topic": "{{COMPANY}}.{{ENV}}.debezium.internal.schema_changes",
        "schema.history.internal.producer.security.protocol": "SASL_SSL",
        "schema.history.internal.producer.sasl.mechanism": "SCRAM-SHA-256",
        "schema.history.internal.producer.sasl.jaas.config": "${file:/secrets/debezium.properties:kafkaSaslJaasConfig}",
        "schema.history.internal.consumer.security.protocol": "SASL_SSL",
        "schema.history.internal.consumer.sasl.mechanism": "SCRAM-SHA-256",
        "schema.history.internal.consumer.sasl.jaas.config": "${file:/secrets/debezium.properties:kafkaSaslJaasConfig}",
        "schema.history.internal.consumer.group.id": "debezium",
          "schema.history.internal.store.only.captured.tables.ddl": true
      } 

       

       

       

       

      What is the captured database version and mode of deployment?

      Oracle 19.21.0.0

      What behavior do you expect?

      To continue miniing without failing

      What behavior do you see?

      Debezium fails with the following error:

      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:67)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:269)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:62)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.streamEvents(ChangeEventSourceCoordinator.java:271)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:194)
      at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:137)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      at java.base/java.lang.Thread.run(Thread.java:829)
      Caused by: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'alter table \"NAV\".\"MY_TABLE\" modify subpartition \"P_202410_S_450\" shrink space CHECK;'
      mismatched input '\"P_202410_S_450\"' expecting \{<EOF>, '/', ';'}
      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:543)
      at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
      at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
      at io.debezium.ddl.parser.oracle.generated.PlSqlParser.sql_script(PlSqlParser.java:2197)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.parseTree(OracleDdlParser.java:73)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.parseTree(OracleDdlParser.java:32)
      at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:78)
      at io.debezium.connector.oracle.antlr.OracleDdlParser.parse(OracleDdlParser.java:68)
      at io.debezium.connector.oracle.OracleSchemaChangeEventEmitter.emitSchemaChangeEvent(OracleSchemaChangeEventEmitter.java:84)
      at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:379)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.handleSchemaChange(AbstractLogMinerEventProcessor.java:773)
      at io.debezium.connector.oracle.logminer.processor.memory.MemoryLogMinerEventProcessor.handleSchemaChange(MemoryLogMinerEventProcessor.java:176)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.processRow(AbstractLogMinerEventProcessor.java:368)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.processResults(AbstractLogMinerEventProcessor.java:314)
      at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.process(AbstractLogMinerEventProcessor.java:235)
      at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:248)
      ... 9 more
      Caused by: org.antlr.v4.runtime.InputMismatchException
      at org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)
      at io.debezium.ddl.parser.oracle.generated.PlSqlParser.sql_script(PlSqlParser.java:2129)
      ... 21 more
      

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

      I am not able to verify

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

      Stack trace above should be enough

      How to reproduce the issue using our tutorial deployment?

      -

              ccranfor@redhat.com Chris Cranford
              scanna27 Luca Scannapieco (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: