[ https://issues.apache.org/jira/browse/KAFKA-4089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sumant Tambe reassigned KAFKA-4089: ----------------------------------- Assignee: Sumant Tambe (was: Dong Lin) > 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)