[ https://issues.apache.org/jira/browse/KAFKA-4840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean McCauliff updated KAFKA-4840: ---------------------------------- Description: In BufferPool.allocate(int size, long maxTimeToBlockMs): 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. The number of available bytes are also not restored when an exception happens. was: In BufferPool.allocate(int size, long maxTimeToBlockMs): 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. > There are are still cases where producer buffer pool will not remove waiters. > ----------------------------------------------------------------------------- > > Key: KAFKA-4840 > URL: https://issues.apache.org/jira/browse/KAFKA-4840 > Project: Kafka > Issue Type: Bug > Components: clients > Affects Versions: 0.10.2.0 > Reporter: Sean McCauliff > > In BufferPool.allocate(int size, long maxTimeToBlockMs): > 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. > The number of available bytes are also not restored when an exception happens. -- This message was sent by Atlassian JIRA (v6.3.15#6346)