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

Avoid getting NPE when executing the arrived method in ExecuteSnapshot

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 2.4.0.Beta2
    • 2.4.0.Beta1
    • core-library
    • None
    • False
    • None
    • False

      Missing config "read.only" will get NPE as below.

      {
          "name": "inventory-connector",
          "config": {
              "connector.class": "io.debezium.connector.mysql.MySqlConnector",
              "tasks.max": "1",
              "database.hostname": "mysql",
              "database.port": "3306",
              "database.user": "debezium",
              "database.password": "dbz",
              "database.server.id": "184054",
              "snapshot.mode": "initial_only",
              "topic.prefix": "dbserver1",
              "database.include.list": "inventory",
              "schema.history.internal.kafka.bootstrap.servers": "kafka:9092",
              "signal.kafka.bootstrap.servers": "kafka:9092",
              "schema.history.internal.kafka.topic": "schema-changes.inventory",
              "signal.kafka.topic": "debezium_signal",
              "signal.enabled.channels": "source,kafka"
          }
      } 
      

      [2023-09-03 12:49:42,011] WARN [test_avro_with_inital_source|task-0] Action execute-snapshot failed. The signal SignalRecord{id='null', type='execute-snapshot', data='

      { "data-collections" : [ "workdb.account" ], "type" : "INCREMENTAL" }

      ', additionalData={channelOffset=6}} may not have been processed. (io.debezium.pipeline.signal.SignalProcessor:202)
      java.lang.NullPointerException
      at io.debezium.pipeline.signal.actions.snapshotting.ExecuteSnapshot.arrived(ExecuteSnapshot.java:74)
      at io.debezium.pipeline.signal.SignalProcessor.processSignal(SignalProcessor.java:191)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
      at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
      at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
      at io.debezium.pipeline.signal.SignalProcessor.lambda$process$3(SignalProcessor.java:143)
      at io.debezium.pipeline.signal.SignalProcessor.executeWithSemaphore(SignalProcessor.java:165)
      at io.debezium.pipeline.signal.SignalProcessor.process(SignalProcessor.java:138)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
      at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
      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:834)

            Unassigned Unassigned
            ywyuewei Harvey Yue
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: