You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/11/16 19:23:58 UTC

[jira] [Commented] (KAFKA-4089) KafkaProducer raises Batch Expired exception

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

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

Github user sutambe closed the pull request at:

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


> KafkaProducer raises Batch Expired exception 
> ---------------------------------------------
>
>                 Key: KAFKA-4089
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4089
>             Project: Kafka
>          Issue Type: Bug
>          Components: clients
>    Affects Versions: 0.10.0.1
>            Reporter: Sumant Tambe
>            Assignee: Sumant Tambe
>
> The basic idea of batch expiration is that we don't expire batches when producer thinks "it can make progress". Currently the notion of "making progress" involves only in-flight requests (muted partitions). That's not sufficient. The other half of the "making progress" is that if we have stale metadata, we cannot trust it and therefore can't say we can't make progress. Therefore, we don't expire batched when metadata is stale. This also implies we don't want to expire batches when we can still make progress even if the batch remains in the queue longer than the batch expiration time. 
> The current condition in {{abortExpiredBatches}} that bypasses muted partitions is necessary but not sufficient. It should additionally restrict ejection when metadata is stale. 
> Conversely, it should expire batches only when the following is true
> # !muted AND
> # meta-data is fresh AND
> # batch remained in the queue longer than request timeout.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)