[ https://issues.apache.org/jira/browse/KAFKA-2198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14622637#comment-14622637 ]
Manikumar Reddy commented on KAFKA-2198: ---------------------------------------- [~gwenshap] Thanks for the review. Sample output is given below. {code} sh kafka-topics.sh --alter --topic UNKNOWN -config min.insync.replicas=2 --zookeeper localhost && echo succeeded Error while executing topic command : Topic UNKNOWN does not exist on ZK path localhost [2015-07-10 22:59:01,808] ERROR java.lang.IllegalArgumentException: Topic UNKNOWN does not exist on ZK path localhost at kafka.admin.TopicCommand$.alterTopic(TopicCommand.scala:104) at kafka.admin.TopicCommand$.main(TopicCommand.scala:56) at kafka.admin.TopicCommand.main(TopicCommand.scala) (kafka.admin.TopicCommand$) {code} {code} $ sh kafka-topics.sh --alter --topic EVENT --config min.insync.replicasTYPO=2 --zookeeper localhost && echo succeeded Error while executing topic command : requirement failed: Unknown configuration "min.insync.replicasTYPO". [2015-07-10 23:02:04,273] ERROR 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:185) at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:184) at scala.collection.Iterator$class.foreach(Iterator.scala:727) at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) at kafka.log.LogConfig$.validateNames(LogConfig.scala:184) at kafka.log.LogConfig$.validate(LogConfig.scala:192) at kafka.admin.TopicCommand$.parseTopicConfigsToBeAdded(TopicCommand.scala:217) at kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:110) at kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:107) 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:107) at kafka.admin.TopicCommand$.main(TopicCommand.scala:56) at kafka.admin.TopicCommand.main(TopicCommand.scala) (kafka.admin.TopicCommand$) {code} > 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, KAFKA-2198_2015-07-10_22:02:02.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)