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

There are still cases where producer buffer pool will not remove waiters.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.10.2.0
    • 0.11.0.0
    • clients
    • None

    Description

      There are several problems dealing with errors in BufferPool.allocate(int size, long maxTimeToBlockMs):

      • The accumulated number of bytes are not put back into the available pool when an exception happens and a thread is waiting for bytes to become available. This will cause the capacity of the buffer pool to decrease over time any time a timeout is hit within this method.
      • If a Throwable other than InterruptedException is thrown out of await() for some reason or if there is an exception thrown in the corresponding finally block around the await(), for example if waitTime.record(.....) throws an exception, then the waiters are not removed from the waiters deque.
      • On timeout or other exception waiters could be signaled, but are not. If no other buffers are freed then the next waiting thread will also timeout and so on.

      Attachments

        Issue Links

          Activity

            People

              smccauliff Sean McCauliff
              smccauliff Sean McCauliff
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: