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

Debezium Server Kinesis Sink Cannot Handle Null Events

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.7.0.Beta1
    • 1.7.0.Alpha1
    • debezium-server
    • None
    • False
    • False
    • Low
    • Undefined

      While experimenting with the Debezium server and db2 connector, a few moments of inactivity would result in the Debezium server to crash with the following stacktrace:

       

      2021-08-02 04:56:13,367 INFO  [io.deb.jdb.JdbcConnection] (pool-10-thread-1) Connection gracefully closed
      2021-08-02 04:56:13,371 INFO  [org.apa.kaf.con.sto.FileOffsetBackingStore] (pool-7-thread-1) Stopped FileOffsetBackingStore
      2021-08-02 04:56:13,372 INFO  [io.deb.ser.ConnectorLifecycle] (pool-7-thread-1) Connector completed: success = 'false', message = 'Stopping connector after error in the application's handler method: Unexpected data type 'null'', error = '{}': io.debezium.DebeziumException: Unexpected data type 'null'
              at io.debezium.server.BaseChangeConsumer.getBytes(BaseChangeConsumer.java:73)
              at io.debezium.server.kinesis.KinesisChangeConsumer.handleBatch(KinesisChangeConsumer.java:106)
              at io.debezium.embedded.ConvertingEngineBuilder.lambda$notifying$2(ConvertingEngineBuilder.java:83)
              at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:821)
              at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:188)
              at io.debezium.server.DebeziumServer.lambda$start$1(DebeziumServer.java:145)
              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)
      
      

      Inspection of the code for io.debezium.server.kinesis.KinesisChangeConsumer.handleBatch and the definition for getBytes indicates that the object is expected to be either a byte array or a string.

       

              Unassigned Unassigned
              cab-1 Chris Baumbauer (Inactive)
              Chris Baumbauer (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: