You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Lianet Magrans (Jira)" <ji...@apache.org> on 2025/06/16 16:51:00 UTC
[jira] [Resolved] (KAFKA-16778) AsyncKafkaConsumer fetcher might occasionally try to fetch to a revoked partition
[ https://issues.apache.org/jira/browse/KAFKA-16778?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lianet Magrans resolved KAFKA-16778.
------------------------------------
Resolution: Fixed
This was fixed by moving all subscription state changes to the background (where this FetchRequestManager runs).
Several jiras behind the fix, all referenced here https://issues.apache.org/jira/browse/KAFKA-16290?focusedCommentId=17873962&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17873962
> AsyncKafkaConsumer fetcher might occasionally try to fetch to a revoked partition
> ---------------------------------------------------------------------------------
>
> Key: KAFKA-16778
> URL: https://issues.apache.org/jira/browse/KAFKA-16778
> Project: Kafka
> Issue Type: Bug
> Components: clients, consumer
> Reporter: Philip Nee
> Priority: Major
> Labels: kip-848-client-support
>
>
> {code:java}
> java.lang.IllegalStateException: No current assignment for partition output-topic-26
> at org.apache.kafka.clients.consumer.internals.SubscriptionState.assignedState(SubscriptionState.java:369)
> at org.apache.kafka.clients.consumer.internals.SubscriptionState.position(SubscriptionState.java:542)
> at org.apache.kafka.clients.consumer.internals.AbstractFetch.prepareFetchRequests(AbstractFetch.java:411)
> at org.apache.kafka.clients.consumer.internals.FetchRequestManager.poll(FetchRequestManager.java:74)
> at org.apache.kafka.clients.consumer.internals.ConsumerNetworkThread.lambda$new$2(ConsumerNetworkThread.java:159)
> at org.apache.kafka.clients.consumer.internals.ConsumerNetworkThread.lambda$runOnce$0(ConsumerNetworkThread.java:143)
> at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
> at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
> at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
> at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
> at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
> at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
> at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.base/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:657)
> at org.apache.kafka.clients.consumer.internals.ConsumerNetworkThread.runOnce(ConsumerNetworkThread.java:145)
> at org.apache.kafka.clients.consumer.internals.ConsumerNetworkThread.run(ConsumerNetworkThread.java:94) {code}
> The setup is - running 30 consumers consuming from a 300 partitions topic.
> We can occasionally get an IllegalStateException from the consumer.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)