Uploaded image for project: 'Apache Storm'
  1. Apache Storm
  2. STORM-2183

BaseStatefulBoltExecutor does not handle cyclic graphs

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Abandoned
    • 1.x
    • None
    • storm-core
    • 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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            bsobel Bill Sobel
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 96h
                96h
                Remaining:
                Remaining Estimate - 96h
                96h
                Logged:
                Time Spent - Not Specified
                Not Specified