Doyeon Kim created KAFKA-21049:
----------------------------------
Summary: Async consumer can busy-loop while waiting for fetch
progress when retry.backoff.ms is zero
Key: KAFKA-21049
URL: https://issues.apache.org/jira/browse/KAFKA-21049
Project: Kafka
Issue Type: Bug
Reporter: Doyeon Kim
Assignee: Doyeon Kim
When retry.backoff.ms is configured to 0, the async consumer can use 0 as
the application-thread fetch wait.
FetchRequestManager.maximumTimeToWait() returns retryBackoffMs when there
is no fetch request in flight, and AsyncKafkaConsumer.pollForFetches()
also uses it while waiting for assignment, fetch positions, or fetch
progress. This can cause FetchBuffer.awaitWakeup() to return immediately
and the outer poll loop to repeat without progress.
Use a minimum positive value when retryBackoffMs is used as an
application-thread wait, without changing request retry semantics.
Related discussion:
https://github.com/apache/kafka/pull/23357#issuecomment-5542567794
--
This message was sent by Atlassian Jira
(v8.20.10#820010)