Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-6056

LogCleaner always cleaning into 1 Segment per sizegroup might exeed relativ offset range

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 0.11.0.0
    • None
    • core, log
    • None

    Description

      After having an Issue with compaction stopping for some time. It can be an issue that the LogCleaner will always clean into 1 Segment per sizegroup.

      Usually the Log enforces a maximum distance between min and max offset in a LogSegment. If that Distance would be exeeded in maybeRoll() a new logsegment would be rolled. I assume this is because relative offset might be stored as integer. The LogCleaner OTOH is not going to roll a new LogSegment as its only ever using 1 Segment to clean into.

      A lenghty discussion about this can be found in the slack community:

      https://confluentcommunity.slack.com/archives/C49R61XMM/p1506914441000005

      The observed stacktrace is as follows:

      https://gist.github.com/brettrann/ce52343692696a45d5b9f4df723bcd14

      I could imagin also enfocing Integer.MAX_VALUE as offset distance in
      groupSegmentsBySize in the LogCleaner to make sure a Segment doesnt exeed this limit.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jfilipiak Jan Filipiak
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: