storm-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Schonfeld <>
Subject Possible bug in acker.clj or my lack of understanding in RotatingMap
Date Mon, 22 Dec 2014 16:10:04 GMT

I am trying to understand some of the storm code base and I've run into
this question regarding the use of RotatingMap in acker.clj and
executor.clj.  It's probably my lack of understand of how the code works,
but i figured there is no harm in asking.

So I see that in the spout, the rotating map combined with a tick tuple set
to TOPOLOGY-MESSAGE-TIMEOUT-SECS is used to timeout the tuple at the spout
subsequently calling the fail() method.

I also see that inside the acker the same mechanism is used.

The question is what happens when the spout fails the tuple from a timeout,
but the bolts continue processing the tuple's children so part of the tuple
DAG.  They keep sending ACK messages to the acker and update the key in the
RotatingMap there by causing the tuple to not timeout at the acker even
though it already did at the spout.

Is there a possibility of receiving both a fail() and an ack() at the
*spout* given the above condition?


View raw message