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

PubSub Sink sends empty records

    Details

      Description

      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?

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                ccranfor Chris Cranford
                Reporter:
                passkit Nick Murray
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: