Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0.0, 1.1.0
-
None
Description
The new KafkaSpout may throw NPEs if partitions are reassigned while tuples are in-flight. The ack function assumes that the spout instance is always responsible for tuples it emitted, which isn't true if partitions were reassigned since the tuple was emitted. The fail function also assumes that failed tuples should be replayed, which is useless if the tuple is for a partition the spout isn't assigned, since it then can't commit the tuple if it succeeds. Both functions should check that the spout instance is responsible for the incoming tuple before scheduling it for retry or adding it to the acked list.
Attachments
Issue Links
- duplicates
-
STORM-2180 KafkaSpout ack() should handle re-balance
- Closed
- is duplicated by
-
STORM-2207 Kafka Spout NullPointerException during ack
- Resolved
- links to