[
https://issues.apache.org/jira/browse/KAFKA-8838?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16928395#comment-16928395
]
Patrik Kleindl commented on KAFKA-8838:
---
Thanks for making me re-check, it was a human error.
The application reset tool allows a comma-separated list of topics, the
consumer group tool does not and requires each topic to be passed via --topic.
So regarding the offsets these calls should produce the same results:
./kafka-consumer-groups --bootstrap-server broker:9092 --group groupId
--reset-offsets --by-duration P60D --topic topic1 --topic topic2 --execute
./kafka-streams-application-reset --bootstrap-servers broker:9092
--application-id groupId --input-topics topic1, topic2 --by-duration P60D
--execute
> Allow consumer group tool to work with non-existing consumer groups
> ---
>
> Key: KAFKA-8838
> URL: https://issues.apache.org/jira/browse/KAFKA-8838
> Project: Kafka
> Issue Type: Improvement
> Components: tools
>Reporter: Patrik Kleindl
>Priority: Minor
>
> The streams application reset tool works for non-existing consumer groups and
> allows to "pre-set" offsets before a new deployment.
> The consumer group tool does not allow the same which would be a nice
> enhancement.
> If this should work and the NullPointerException is not expected this can be
> converted to a bug.
>
> {code:java}
> ./kafka-consumer-groups --bootstrap-server broker:9092 --group applicationId
> --reset-offsets --by-duration P60D --topic topic1 --executeError: Executing
> consumer group command failed due to nulljava.lang.NullPointerException at
> scala.collection.convert.Wrappers$JListWrapper.iterator(Wrappers.scala:88) at
> scala.collection.IterableLike$class.foreach(IterableLike.scala:72) at
> scala.collection.AbstractIterable.foreach(Iterable.scala:54) at
> scala.collection.TraversableLike$class.map(TraversableLike.scala:234) at
> scala.collection.AbstractTraversable.map(Traversable.scala:104) at
> kafka.admin.ConsumerGroupCommand$ConsumerGroupService$$anonfun$parseTopicPartitionsToReset$1.apply(ConsumerGroupCommand.scala:477)
> at
> kafka.admin.ConsumerGroupCommand$ConsumerGroupService$$anonfun$parseTopicPartitionsToReset$1.apply(ConsumerGroupCommand.scala:471)
> at
> scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
> at
> scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
> at scala.collection.Iterator$class.foreach(Iterator.scala:891) at
> scala.collection.AbstractIterator.foreach(Iterator.scala:1334) at
> scala.collection.IterableLike$class.foreach(IterableLike.scala:72) at
> scala.collection.AbstractIterable.foreach(Iterable.scala:54) at
> scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241) at
> scala.collection.AbstractTraversable.flatMap(Traversable.scala:104) at
> kafka.admin.ConsumerGroupCommand$ConsumerGroupService.parseTopicPartitionsToReset(ConsumerGroupCommand.scala:471)
> at
> kafka.admin.ConsumerGroupCommand$ConsumerGroupService.getPartitionsToReset(ConsumerGroupCommand.scala:486)
> at
> kafka.admin.ConsumerGroupCommand$ConsumerGroupService.resetOffsets(ConsumerGroupCommand.scala:310)
> at kafka.admin.ConsumerGroupCommand$.main(ConsumerGroupCommand.scala:64) at
> kafka.admin.ConsumerGroupCommand.main(ConsumerGroupCommand.scala){code}
--
This message was sent by Atlassian Jira
(v8.3.2#803003)