Jason Gustafson commented on KAFKA-4303:

Revised the title. The unnecessary blocking caused by the issue above should be 
bounded in duration by the minimum of {{metadata.max.age.ms}} and 
{{request.timeout.ms}} (this upper bound is enforced by {{NetworkClient}}). We 
still probably need to fix this though because it prevents the offset commit 
from being sent and results in the consumer being kicked out of the group.

> KafkaConsumer blocks unnecessarily in commitSync() 
> ---------------------------------------------------
>                 Key: KAFKA-4303
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4303
>             Project: Kafka
>          Issue Type: Bug
>          Components: consumer
>            Reporter: Jason Gustafson
>            Assignee: Jason Gustafson
>            Priority: Blocker
>             Fix For:
> This appears to be a regression caused by the KIP-62 patch. It is possible 
> that we end up blocking indefinitely in {{NetworkClient.poll()}} with no 
> requests pending. The reason is that 
> {{ConsumerNetworkClient.poll(RequestFuture)}} does not actually verify that 
> the request has been sent prior to calling {{NetworkClient.poll()}}. This was 
> not possible previously because the maximum timeout was always bounded by the 
> heartbeat interval.
> This appears to be the cause of hanging builds that some people may have 
> experienced. In particular, I have seen {{ConsumerBounceTest}} hang because 
> of this problem.
> Note that another reason we can block indefinitely in {{commitSync()}} is 
> coordinator discovery. We do not attempt to fix this here.

This message was sent by Atlassian JIRA

Reply via email to