Dustin Cote created KAFKA-6107: ---------------------------------- Summary: SCRAM user add fails if Kafka has never been started Key: KAFKA-6107 URL: https://issues.apache.org/jira/browse/KAFKA-6107 Project: Kafka Issue Type: Bug Components: tools, zkclient Affects Versions: 0.11.0.0 Reporter: Dustin Cote Priority: Minor
When trying to add a SCRAM user in ZooKeeper without having ever starting Kafka, the kafka-configs tool does not handle it well. This is a common use case because starting a new cluster where you want SCRAM for inter broker communication would generally result in seeing this problem. Today, the workaround is to start Kafka, add the user, then restart Kafka. Here's how to reproduce: 1) Start ZooKeeper 2) Run {code} bin/kafka-configs --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=broker_pwd],SCRAM-SHA-512=[password=broker_pwd]' --entity-type users --entity-name broker {code} This will result in: {code} bin/kafka-configs --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[iterations=8192,password=broker_pwd],SCRAM-SHA-512=[password=broker_pwd]' --entity-type users --entity-name broker Error while executing config command org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /config/changes/config_change_ org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /config/changes/config_change_ at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47) at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:1001) at org.I0Itec.zkclient.ZkClient.create(ZkClient.java:528) at org.I0Itec.zkclient.ZkClient.createPersistentSequential(ZkClient.java:444) at kafka.utils.ZkPath.createPersistentSequential(ZkUtils.scala:1045) at kafka.utils.ZkUtils.createSequentialPersistentPath(ZkUtils.scala:527) at kafka.admin.AdminUtils$.kafka$admin$AdminUtils$$changeEntityConfig(AdminUtils.scala:600) at kafka.admin.AdminUtils$.changeUserOrUserClientIdConfig(AdminUtils.scala:551) at kafka.admin.AdminUtilities$class.changeConfigs(AdminUtils.scala:63) at kafka.admin.AdminUtils$.changeConfigs(AdminUtils.scala:72) at kafka.admin.ConfigCommand$.alterConfig(ConfigCommand.scala:101) at kafka.admin.ConfigCommand$.main(ConfigCommand.scala:68) at kafka.admin.ConfigCommand.main(ConfigCommand.scala) Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /config/changes/config_change_ at org.apache.zookeeper.KeeperException.create(KeeperException.java:111) at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783) at org.I0Itec.zkclient.ZkConnection.create(ZkConnection.java:100) at org.I0Itec.zkclient.ZkClient$3.call(ZkClient.java:531) at org.I0Itec.zkclient.ZkClient$3.call(ZkClient.java:528) at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:991) ... 11 more {code} The command doesn't appear to fail but it does throw an exception and return an error. -- This message was sent by Atlassian JIRA (v6.4.14#64029)