You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Mayuresh Gharat (JIRA)" <ji...@apache.org> on 2016/05/03 23:08:12 UTC

[jira] [Created] (KAFKA-3651) Whenever the BufferPool throws a "Failed to allocate memory within the configured max blocking time" excepion, it should also remove the condition object from the waiters deque

Mayuresh Gharat created KAFKA-3651:
--------------------------------------

             Summary: Whenever the BufferPool throws a "Failed to allocate memory within the configured max blocking time" excepion, it should also remove the condition object from the waiters deque
                 Key: KAFKA-3651
                 URL: https://issues.apache.org/jira/browse/KAFKA-3651
             Project: Kafka
          Issue Type: Bug
            Reporter: Mayuresh Gharat
            Assignee: Mayuresh Gharat


"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().



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)