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

Oracle test shouldHandleParentChildIndexOrganizedTables randomly fails

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major Major
    • 3.4.0.Alpha1
    • None
    • oracle-connector
    • None

      The Oracle test shouldHandleParentChildIndexOrganizedTables sometimes randomly fails due to the following error:

      java.util.concurrent.ExecutionException: org.apache.kafka.connect.errors.ConnectException: Snapshotting of table ORCLPDB1.DEBEZIUM.TEST_IOT failed
      	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
      	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
      	at io.debezium.relational.RelationalSnapshotChangeEventSource.createDataEvents(RelationalSnapshotChangeEventSource.java:539)
      	at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:187)
      	at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:102)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:301)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:285)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:196)
      	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:147)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      	at io.debezium.util.Threads$3.lambda$newThread$0(Threads.java:314)
      	at java.base/java.lang.Thread.run(Thread.java:1583)
      Caused by: org.apache.kafka.connect.errors.ConnectException: Snapshotting of table ORCLPDB1.DEBEZIUM.TEST_IOT failed
      	at io.debezium.connector.oracle.OracleSnapshotChangeEventSource.lambda$createDataEventsForTableCallable$1(OracleSnapshotChangeEventSource.java:310)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      	... 1 common frames omitted
      

      While the Oracle snapshot is designed to retry ORA-01466 errors, there are a few outstanding issues:

      • The retry does not impose any sleep between attempts. If the issue is because of timing in the Oracle database, this quick retry mechanism without a small wait could be unhelpful. So we should add a small wait between attempts.
      • The test itself should impose a small wait before starting the connector, allowing Oracle to fully synchronize the overflow index with the table.
      • The test should be marked with Flaky so its retried should it fail.

              ccranfor@redhat.com Chris Cranford
              ccranfor@redhat.com Chris Cranford
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: