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

Whenever the BufferPool throws a "Failed to allocate memory within the configured max blocking time" exception, it should also remove the condition object from the waiters deque

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.10.0.0
    • None
    • None

    Description

      "this.waiters.remove(moreMemory);" should happen before the exception
      is thrown.

      .Otherwise the waiting thread count will never get to 0 after the exception
      and batching will not occur. This is because in the RecordAccumulator.ready
      method the exhausted is set as

      boolean exhausted = this.free.queued() > 0 where free.queued() returns the
      waiters.size().

      Attachments

        Activity

          People

            mgharat Mayuresh Gharat
            mgharat Mayuresh Gharat
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: