[ https://issues.apache.org/jira/browse/KAFKA-2359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14640730#comment-14640730 ]
Jay Kreps commented on KAFKA-2359: ---------------------------------- Interesting. This behavior was intentional in that the actual work of interacting with the co-ordinator is meant to happen always in the poll loop. The subscribe/unsubscribe calls are really expressing the intention and you can call subscribe for multiple topics in a loop without doing I/O or blocking which I think is important. I see why that can be confusing though. Not sure if this is one where we should improve the docs or the code...? > New consumer - partitions auto assigned only on poll > ---------------------------------------------------- > > Key: KAFKA-2359 > URL: https://issues.apache.org/jira/browse/KAFKA-2359 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.8.3 > Reporter: Stevo Slavic > Priority: Minor > > In the new consumer I encountered unexpected behavior. After constructing > {{KafkaConsumer}} instance with configured consumer rebalance callback > handler, and subscribing to a topic with "consumer.subscribe(topic)", > retrieving subscriptions would return empty set and callback handler would > not get called (no partitions ever assigned or revoked), no matter how long > instance was up. > Then I found by inspecting {{KafkaConsumer}} code that partition assignment > will only be triggered on first {{poll}}, since {{pollOnce}} has: > {noformat} > // ensure we have partitions assigned if we expect to > if (subscriptions.partitionsAutoAssigned()) > coordinator.ensurePartitionAssignment(); > {noformat} > I'm proposing to fix this by including same {{ensurePartitionAssignment}} > fragment in {{KafkaConsumer.subscriptions}} accessor as well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)