Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Abandoned
-
1.x
-
None
-
Java 1.8
-
Important
Description
BaseStatefulBoltExecutor::getCheckpointInputTaskCount() returns the number of sources that a state transaction must wait for to process a transaction. In a graph where there is a loop (e.g. A->B->C->D->C) components 'C' and 'D' the required number of tuples can will never be received. The function shouldProcessTransaction will never receive the correct number of tuples, because the set required to come back form 'D' to 'C' will never be forwarded from 'C' to 'D' to begin with.
Bolt 'C' and 'D' never finish the state initialization step and as such will never pass tuples to their wrapped bolt.