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

[jira] [Commented] (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

    [ https://issues.apache.org/jira/browse/KAFKA-3651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15269821#comment-15269821 ] 

Ismael Juma commented on KAFKA-3651:
------------------------------------

[~mgharat], are you planning to submit a PR for this soon?

> 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
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 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)