sanghyeok An created KAFKA-21084:
------------------------------------
Summary: Async consumer busy-loops when paused fetches are
requeued into FetchBuffer
Key: KAFKA-21084
URL: https://issues.apache.org/jira/browse/KAFKA-21084
Project: Kafka
Issue Type: Bug
Reporter: sanghyeok An
Assignee: sanghyeok An
{*}Description{*}{*}{*}
AsyncKafkaConsumer.poll() can busy-loop when buffered fetches belong to paused
partitions and no records can be returned. FetchCollector.collectFetch()
preserves paused fetches by requeuing them through FetchBuffer.addAll().
However, addAll() also sets wokenup = true. The subsequent awaitWakeup()
consumes this signal and returns without blocking.
Repeated collection of the same paused fetches regenerates the signal, allowing
the application thread to spin in poll() until its timeout expires, without new
fetch responses or consumption progress.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)