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)

Reply via email to