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

OffsetManager doesn't recover after missing offsets

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 1.1.0, 1.1.3
    • None
    • storm-kafka-client
    • None

    Description

      When missing offsets are encountered, but a committable offset exists after the missing offset, the condition is detected and logged but not properly processed.  You will see three log messages in this case:

      Processed non-sequential offset.  The earliest uncommitted offset is no longer part of the topic.  Missing offset: [{}], Processed: [{}]
      ...
      Found committable offset: [{}] after missing offset: [{}], skipping to the committable offset
      ...
      Topic-partition [{}] has no offsets ready to be committed

      However, this is not the proper handling.  While a committable offset has been found, the found flag is not set to true (resulting in the 3rd log message).

      The fix is to add a found=true within this logic:

      In OffsetManager.java

      if (nextEmittedOffset != null && currOffset == nextEmittedOffset) {
                              LOG.debug("Found committable offset: [{}] after missing offset: [{}], skipping to the committable offset",
                                  currOffset, nextCommitOffset);
                              nextCommitOffset = currOffset + 1;
                              found = true;       //  ADD THIS LINE TO FIX THIS BUG
                          }

      Because of this bug, offsets are not committed properly.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gregchatham Greg Chatham
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: