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