[
https://issues.apache.org/jira/browse/KAFKA-2198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jun Rao updated KAFKA-2198:
---------------------------
Reviewer: Neha Narkhede
> kafka-topics.sh exits with 0 status on failures
> -----------------------------------------------
>
> Key: KAFKA-2198
> URL: https://issues.apache.org/jira/browse/KAFKA-2198
> Project: Kafka
> Issue Type: Bug
> Components: admin
> Affects Versions: 0.8.2.1
> Reporter: Bob Halley
> Assignee: Manikumar Reddy
> Attachments: KAFKA-2198.patch, KAFKA-2198_2015-05-19_18:27:01.patch,
> KAFKA-2198_2015-05-19_18:41:25.patch
>
>
> In the two failure cases below, kafka-topics.sh exits with status 0. You
> shouldn't need to parse output from the command to know if it failed or not.
> Case 1: Forgetting to add Kafka zookeeper chroot path to zookeeper spec
> $ kafka-topics.sh --alter --topic foo --config min.insync.replicas=2
> --zookeeper 10.0.0.1 && echo succeeded
> succeeded
> Case 2: Bad config option. (Also, do we really need the java backtrace?
> It's a lot of noise most of the time.)
> $ kafka-topics.sh --alter --topic foo --config min.insync.replicasTYPO=2
> --zookeeper 10.0.0.1/kafka && echo succeeded
> Error while executing topic command requirement failed: Unknown configuration
> "min.insync.replicasTYPO".
> java.lang.IllegalArgumentException: requirement failed: Unknown configuration
> "min.insync.replicasTYPO".
> at scala.Predef$.require(Predef.scala:233)
> at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:183)
> at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:182)
> at scala.collection.Iterator$class.foreach(Iterator.scala:727)
> at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
> at kafka.log.LogConfig$.validateNames(LogConfig.scala:182)
> at kafka.log.LogConfig$.validate(LogConfig.scala:190)
> at
> kafka.admin.TopicCommand$.parseTopicConfigsToBeAdded(TopicCommand.scala:205)
> at
> kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:103)
> at
> kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:100)
> at
> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
> at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
> at kafka.admin.TopicCommand$.alterTopic(TopicCommand.scala:100)
> at kafka.admin.TopicCommand$.main(TopicCommand.scala:57)
> at kafka.admin.TopicCommand.main(TopicCommand.scala)
> succeeded
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)