Description
In AbstractPartitionAssignor.assign(Cluster metadata, Map<String, Subscription> subscriptions), it invokes assign(partitionsPerTopic, subscriptions). It assumes that partition number starts from 0, and it constructs TopicPartition in the range of [0, partitionsPerTopic).
This assumption is not correct. The correct way to handle it is to follow the same approach in producer's DefaultPartitioner, where it uses [0, numberOfPartition) as an index to the actual partition.
There are use cases where partition number may not start from zero. It can happen if users use advanced tooling to manually craft the partition number when creating topics.
Attachments
Issue Links
- links to