Ewen Cheslack-Postava created KAFKA-2382: --------------------------------------------
Summary: KafkaConsumer seek methods should throw an exception when called for partitions not assigned to this consumer instance Key: KAFKA-2382 URL: https://issues.apache.org/jira/browse/KAFKA-2382 Project: Kafka Issue Type: Bug Components: consumer Reporter: Ewen Cheslack-Postava Assignee: Neha Narkhede Fix For: 0.8.3 It looks like the current code for the consumer will blindly accept any seek calls, adding the offests to SubscriptionState. If the consumer is being used in simple consumer mode, this makes sense, but when using subscriptions & the consumer coordinator, this should be an error. If a user accidentally invokes the seek at the wrong time, it will just get lost. As a simple example, if you start the consumer, subscribe, and then immediately seek, that seek will just get lost as soon as you call poll() and the initial join group + rebalance occurs. That sequence of calls simply shouldn't be valid since it doesn't make sense to seek() on a partition you haven't been assigned. Relatedly, I think the current effect of doing this can result in incorrect behavior because SubscriptionState.hasAllFetchedPositions() only checks the size of the fetched map and assignedPartitions map. Since this bug allows adding arbitrary topic partitions to the fetched map, that check is not accurate. This is probably related to KAFKA-2343, but that one is just a doc fix on how seek is supposed to behave wrt poll and rebalance. -- This message was sent by Atlassian JIRA (v6.3.4#6332)