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

ASF GitHub Bot commented on KAFKA-3651:
---------------------------------------

GitHub user zhuchen1018 opened a pull request:

    https://github.com/apache/kafka/pull/1315

    KAFKA-3651; awaitFlushCompletion() in RecordAccumulator should always 
decrement flushesInProgress count

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/zhuchen1018/kafka KAFKA-3655

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/1315.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1315
    
----
commit e7533f57cc0169ba0c082ef6c9cc9ddefd902e85
Author: Chen Zhu <amandazhu19620...@gmail.com>
Date:   2016-05-04T00:29:56Z

    KAFKA-3651; awaitFlushCompletion() in RecordAccumulator should always 
decrement flushesInProgress count

----


> 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
>             Fix For: 0.10.0.0
>
>
> "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)

Reply via email to