Well according to the ZK docs, 1.6 or higher is required. I was finally able to get it to work using Curator 1.3.0, but only with zookeeper 3.4.3.
On Tue, Jan 22, 2013 at 4:57 PM, Matthew Daumen <[email protected]>wrote: > I'm on a mac too running mountain lion, but I'm running java 1.6. Could > that be it? > > -m > > > On Tue, Jan 22, 2013 at 4:51 PM, Jordan Zimmerman < > [email protected]> wrote: > >> FYI - I just tried your code snippet and it works fine for me: >> >> OS: MacOS X (latest) >> JDK: openjdk version "1.7.0-ea" >> ZooKeeper: 3.4.5 >> >> -JZ >> >> On Jan 22, 2013, at 4:45 PM, Matthew Daumen <[email protected]> wrote: >> >> > Folks, >> > >> > I'm looking for a solution to creating an embedded zookeeper server for >> > testing. I was using Curator's TestingServer, but after Curator 1.2.3 >> it >> > is broken and fails to allow me to authenticate. >> > >> > I'm working from >> > >> http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#sc_minimumConfiguration >> > >> > So, I tried this out: >> > >> > Properties startupProperties = new Properties(); >> > >> > startupProperties.put("clientPort", 33333); >> > startupProperties.put("dataDir", "/www/a/data/zookeeper/data"); >> > startupProperties.put("tickTime", 2000); >> > >> > QuorumPeerConfig quorumConfiguration = new QuorumPeerConfig(); >> > try { >> > quorumConfiguration.parseProperties(startupProperties); >> > } catch(Exception e) { >> > throw new RuntimeException(e); >> > } >> > >> > final ZooKeeperServerMain zooKeeperServer = new >> > ZooKeeperServerMain(); >> > final ServerConfig configuration = new ServerConfig(); >> > configuration.readFrom(quorumConfiguration); >> > >> > new Thread() { >> > public void run() { >> > try { >> > zooKeeperServer.runFromConfig(configuration); >> > } catch (IOException e) { >> > log.error("ZooKeeper Failed", e); >> > } >> > } >> > }.start(); >> > >> > try { >> > framework = CuratorFrameworkFactory.builder() >> > .connectString("localhost:33333") >> > .connectionTimeoutMs(60000) >> > .retryPolicy(new RetryNTimes(5, 10000)) >> > .build(); >> > } catch (Exception e) { >> > log.error("Error trying to instantiate ZK >> > TestingServer...", e); >> > } >> > >> > framework.start(); >> > >> > >> > For some reason, when I try to connect to the server I've created using >> > localhost:3333, I get the following: >> > >> > 2013-01-22 16:19:40 | ERROR | | Thread-13 | >> > com.macys.stella.services.async.ZookeeperTestServer | ZooKeeper Failed >> > java.io.IOException: Could not configure server because SASL >> configuration >> > did not allow the ZooKeeper server to authenticate itself properly: >> > javax.security.auth.login.FailedLoginException: Password >> Incorrect/Password >> > Required >> > at >> > >> org.apache.zookeeper.server.ServerCnxnFactory.configureSaslLogin(ServerCnxnFactory.java:205) >> > at >> > >> org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:87) >> > at >> > >> org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:110) >> > at >> > >> com.macys.stella.services.async.ZookeeperTestServer$1.run(ZookeeperTestServer.java:52) >> > 2013-01-22 16:19:40 | INFO | | RMI TCP Connection(2)-127.0.0.1 | >> > com.netflix.curator.framework.imps.CuratorFrameworkImpl | Starting >> > 2013-01-22 16:19:40 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:40 | INFO | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> > com.netflix.curator.framework.state.ConnectionStateManager | State >> change: >> > CONNECTED >> > >> > This is followed by a lot of log entries like this: >> > 2013-01-22 16:19:43 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:44 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:45 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:46 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:47 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:48 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:49 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:50 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:51 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:52 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:54 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:55 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:56 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:57 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:58 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:19:59 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:00 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:01 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:02 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:03 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:05 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:06 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:07 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:08 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:09 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:10 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:11 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:12 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:13 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:15 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:16 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:17 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:18 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:19 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:20 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:21 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:22 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:23 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:24 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:26 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:27 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:28 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:29 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:30 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:31 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:32 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:33 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:34 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:35 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > 2013-01-22 16:20:37 | ERROR | | RMI TCP >> > Connection(2)-127.0.0.1-EventThread | >> com.netflix.curator.ConnectionState | >> > Authentication failed >> > >> > So I'm confused. If the above link to the zookeeper documentation truly >> > represents a minimal configuration, suitable for running tests or for >> > development scenarios, why is it that this config is not working for me? >> > Why is SASL involved at all here? I even set up using digest auth >> > provider with super digest detailed in the docs and it never got that >> far, >> > failing identically to what I've posted above. >> > >> > I'm using Curator 1.3.0 so the version of Zookeeper in my project >> should be >> > 3.4.5. I have heard this is a bug in 3.4.4 that was fixed, but it >> appears >> > the fix was incomplete. >> > >> > Can someone help me out here? I just need an embedded zookeeper for >> testing >> > and development scenarios, preferably without the need to maintain a >> config >> > for it. >> > >> > Thanks! >> > >> > Matthew D. >> >> >
