javaapache-storm

Storm Bolts acking but spout is failing


I'm having an odd issue with Apache Storm. I have a KafkaSpout hooked up to a Kafka cluster with 10 messages in it.

The Bolts receive each message and process them correctly because in the Storm UI they are listed as 'acked'. However, the Spout listed under the storm UI says that all of the tuples failed.

I believe this causes the spout to re-emit all of the messages again... So I am seeing a Storm Bolt print out messages 1-10 and then print them out in the same order over and over and over.

I am calling .ack() and .fail() methods appropriately, I just don't know why the Spout would be listing them as failed.

Any thoughts?


Solution

  • It turns out that a couple bolts downstream were not acking when they finished processing a tuple. This caused the spout tuple to fail and ultimately send the tuple again which resulted in a continuous loop.