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

Reading SSN field can lead to Numeric Overflow if a transaction contains more than Integer.MAX_VALUE SQL sequences

    XMLWordPrintable

Details

    Description

      Hi,
      I'm getting this:

      56, miningSessionProcessGlobalAreaMaxMemory=69467024}
      2023-02-08 09:07:27,223 INFO  [io.deb.con.ora.log.LogMinerStreamingChangeEventSource] (debezium-oracleconnector-uatrpbrg-change-event-source-coordinator) Offsets: OracleOffsetContext [scn=12952060878916, commit_scn=[]]
      2023-02-08 09:07:27,223 INFO  [io.deb.pip.ChangeEventSourceCoordinator] (debezium-oracleconnector-uatrpbrg-change-event-source-coordinator) Finished streaming
      2023-02-08 09:07:27,223 INFO  [io.deb.pip.ChangeEventSourceCoordinator] (debezium-oracleconnector-uatrpbrg-change-event-source-coordinator) Connected metrics set to 'false'
      2023-02-08 09:07:27,316 INFO  [io.deb.emb.EmbeddedEngine] (pool-7-thread-1) Stopping the task and engine
      2023-02-08 09:07:27,316 INFO  [io.deb.con.com.BaseSourceTask] (pool-7-thread-1) Stopping down connector
      2023-02-08 09:07:27,364 INFO  [io.deb.jdb.JdbcConnection] (pool-10-thread-1) Connection gracefully closed
      2023-02-08 09:07:27,372 INFO  [io.deb.sto.red.off.RedisOffsetBackingStore] (pool-7-thread-1) Stopped RedisOffsetBackingStore
      2023-02-08 09:07:27,373 ERROR [io.deb.ser.ConnectorLifecycle] (pool-7-thread-1) Connector completed: success = 'false', message = 'Error while trying to run connector class 'io.debezium.connector.oracle.OracleConnector'', error = 'org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.': 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:53)
              at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:225)
              at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:59)
              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.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: java.sql.SQLException: Numeric Overflow
              at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4162)
              at oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:132)
              at oracle.jdbc.driver.GeneratedStatement.getInt(GeneratedStatement.java:172)
              at oracle.jdbc.driver.GeneratedScrollableResultSet.getInt(GeneratedScrollableResultSet.java:270)
              at io.debezium.connector.oracle.logminer.events.LogMinerEventRow.initializeFromResultSet(LogMinerEventRow.java:182)
              at io.debezium.connector.oracle.logminer.events.LogMinerEventRow.fromResultSet(LogMinerEventRow.java:154)
              at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.processResults(AbstractLogMinerEventProcessor.java:255)
              at io.debezium.connector.oracle.logminer.processor.AbstractLogMinerEventProcessor.process(AbstractLogMinerEventProcessor.java:194)
              at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:212)
              ... 9 more 2023-02-08 09:07:27,400 INFO  [io.deb.ser.DebeziumServer] (main) Received request to stop the engine
      

      While the relevant line is:

      this.ssn = resultSet.getInt(SSN);
      

      @Chris Cranford shouldn't it be getLong or you have a different assumption here?

      Thanks

      Attachments

        Issue Links

          Activity

            People

              ccranfor@redhat.com Chris Cranford
              yossish Yossi Shirizli
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: