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

PubSub Sink sends empty records

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.3.0.Alpha1
    • 1.2.0.Final
    • debezium-server
    • None

      Seeing the following on Debezium Server with a MySQL source and a Google PubSub sink.

      io.debezium.DebeziumException: java.util.concurrent.ExecutionException: com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: One or more messages in the publish request is empty. Each message must contain either non-empty data, or at least one attribute.
       at io.debezium.server.pubsub.PubSubChangeConsumer.handleBatch(PubSubChangeConsumer.java:151)
       at io.debezium.embedded.ConvertingEngineBuilder.lambda$notifying$2(ConvertingEngineBuilder.java:81)
       at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:810)
       at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:170)
       at io.debezium.server.DebeziumServer.lambda$start$1(DebeziumServer.java:133)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748)
       Caused by: java.util.concurrent.ExecutionException: com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: One or more messages in the publish request is empty. Each message must contain either non-empty data, or at least one attribute.
       at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:552)
       at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:533)
       at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:90)
       at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:62)
       at io.debezium.server.pubsub.PubSubChangeConsumer.handleBatch(PubSubChangeConsumer.java:148)
       ... 7 more

      This puts the server in an irrecoverable state requiring manual intervention.

      Shouldn't the sink guard against sending empty requests?

              ccranfor@redhat.com Chris Cranford
              passkit Nick Murray (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: