[
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)