Kafka
  1. Kafka
  2. KAFKA-727

broker can still expose uncommitted data to a consumer

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.8.0
    • Fix Version/s: None
    • Component/s: core
    • Labels:

      Description

      Even after kafka-698 is fixed, we still see consumer clients occasionally see uncommitted data. The following is how this can happen.

      1. In Log.read(), we pass in startOffset < HW and maxOffset = HW.
      2. Then we call LogSegment.read(), in which we call translateOffset on the maxOffset. The offset doesn't exist and translateOffset returns null.
      3. Continue in LogSegment.read(), we then call messageSet.sizeInBytes() to fetch and return the data.

      What can happen is that between step 2 and step 3, a new message is appended to the log and is not committed yet. Now, we have exposed uncommitted data to the client.

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Jay Kreps
              Reporter:
              Jun Rao
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development