Curator has a test ZK server and cluster: curator-test ==================== Jordan Zimmerman
On Dec 3, 2012, at 11:39 AM, Joshua Blatt <[email protected]> wrote: > Hi guys, > > I've seen a few threads on why it's a bad idea to try to embed ZK in your > app. I'm not trying to do that for my production app. I am trying to do > that for unit tests. I could try to mock out ZK but I'm concerned that'd be > both a lot of typing and wouldn't, well, test against the real thing. > > Has anyone done this before? > > When I tried doing this I saw the ZK session request initiated by the unit > test go through (after first trying IPv6, then falling back to IPv4), but > then the first operation attempted timed out after 40 seconds. The same > test case passes against a 3 node external ZK cluster. > > Note that I'm spinning up a new ZK instance for every test run - I've tried > inserting a several minute sleep after startup to give it time to initialize, > but that didn't make a difference. > > > import java.io.File; > import java.util.UUID; > import java.util.concurrent.Semaphore; > import org.apache.commons.io.FileUtils; > import org.apache.zookeeper.server.ZooKeeperServerMain; > import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > > /** > * A single-node embedded zookeeper server. <p> > * WARNING: This class is only intended for unit testing. It's not production- > * grade. > * > * @author jblatt > */ > public class EmbeddedZooKeeper extends ZooKeeperServerMain { > > private static final Logger LOGGER = > LoggerFactory.getLogger(EmbeddedZooKeeper.class); > private final File dataDir = new File( > FileUtils.getTempDirectoryPath() + "/" > + UUID.randomUUID().toString()); > private final int clientPort; > private final Semaphore isRunning = new Semaphore(0); > private Thread thread; > > public EmbeddedZooKeeper(int clientPort) throws ZooKeeperException { > this.clientPort = clientPort; > } > > public void start() throws ZooKeeperException { > try { > FileUtils.forceMkdir(dataDir); > > final EmbeddedZooKeeper self = this; > > thread = new Thread() { > > @Override > public void run() { > try { > LOGGER.info("Starting ZK server"); > > self.initializeAndRun(new String[]{ > Integer.toString(clientPort), > dataDir.getAbsolutePath()}); > > LOGGER.info("Started ZK server"); > > isRunning.acquire(); > > LOGGER.info("Stopped ZK server"); > > } catch (Throwable t) { > LOGGER.error("Failure in embedded ZooKeeper", t); > } > } > }; > > thread.start(); > } catch (Throwable t) { > throw new ZooKeeperException("Cannot start embedded zookeeper", t); > } > } > > public void stop() throws ZooKeeperException { > try { > LOGGER.info("Stopping ZK server"); > > super.shutdown(); > > isRunning.release(); > > thread.join(); > } catch (Throwable t) { > throw new ZooKeeperException("Cannot stop embedded zookeeper", t); > } finally { > // Unconditionally try to cleanup tmp dirs even if this is done > // on a running ZK server. We don't want to clutter up the user's > // local fs. > > try { > FileUtils.deleteDirectory(dataDir); > } catch (Throwable t) { > LOGGER.error("Cannot cleanup tmp dirs {}", > dataDir.getAbsolutePath()); > } > } > } > } > > Log output: > > 11:07:24.064 INFO [main] > st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Begin > EmbeddedZooKeeperForUnitTests.start() > 11:07:24.066 INFO [main] > st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Embedded > ZooKeeper started > 11:07:24.066 INFO [Thread-1] > st.ata.vcc.control.core.zookeeper.EmbeddedZooKeeper - Starting ZK server > 11:07:24.086 INFO [main] st.ata.vcc.proxy.common.model.RoutePublisherTest - > Begin RoutePublisherTest.start() > 11:07:24.087 DEBUG [main] st.ata.vcc.proxy.common.model.RoutePublisher - > Starting ZK connection on > st.ata.vcc.proxy.common.model.RoutePublisher@6b08d7cf > 11:07:24.087 INFO [main] > st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connecting to > localhost:2181 > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:host.name=10.66.225.162 > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.version=1.7.0_05 > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.vendor=Oracle Corporation > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar: > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/ > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:java.compiler=<NA> > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:os.name=Mac OS X > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:os.arch=x86_64 > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:os.version=10.8.2 > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:user.name=jblatt > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:user.home=/Users/jblatt > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client > environment:user.dir=/Users/jblatt/dev/proxy/common > 11:07:24.095 INFO [main] org.apache.zookeeper.ZooKeeper - Initiating client > connection, connectString=localhost:2181 sessionTimeout=300000 > watcher=st.ata.vcc.control.core.zookeeper.ZooKeeperConnection$ConnectionWatcher@457b9183 > 11:07:24.100 DEBUG [main] org.apache.zookeeper.ClientCnxn - > zookeeper.disableAutoWatchReset is false > 11:07:24.114 INFO [main-SendThread(localhost:2181)] > org.apache.zookeeper.ClientCnxn - Opening socket connection to server > localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL > (unknown error) > 11:07:24.125 WARN [main-SendThread(localhost:2181)] > org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected > error, closing socket connection and attempting reconnect > java.net.ConnectException: Connection refused > at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_05] > at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) > ~[na:1.7.0_05] > at > org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > 11:07:24.125 DEBUG [main-SendThread(localhost:2181)] > org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown > input > java.nio.channels.ClosedChannelException: null > at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:762) > ~[na:1.7.0_05] > at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:421) > ~[na:1.7.0_05] > at > org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:189) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at > org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) > [zookeeper-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097) > [zookeeper-3.4.5.jar:3.4.5-1392090] > 11:07:24.126 DEBUG [main-SendThread(localhost:2181)] > org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown > output > java.nio.channels.ClosedChannelException: null > at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:779) > ~[na:1.7.0_05] > at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:429) > ~[na:1.7.0_05] > at > org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:196) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at > org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) > [zookeeper-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097) > [zookeeper-3.4.5.jar:3.4.5-1392090] > log4j:WARN No appenders could be found for logger > (org.apache.log4j.jmx.HierarchyDynamicMBean). > log4j:WARN Please initialize the log4j system properly. > log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more > info. > 11:07:24.135 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServerMain > - Starting server > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 > GMT > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:host.name=10.66.225.162 > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:java.version=1.7.0_05 > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:java.vendor=Oracle Corporation > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server > environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server > environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar: > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server > environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server > environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/ > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:java.compiler=<NA> > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:os.name=Mac OS X > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:os.arch=x86_64 > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:os.version=10.8.2 > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:user.name=jblatt > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:user.home=/Users/jblatt > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > Server environment:user.dir=/Users/jblatt/dev/proxy/common > 11:07:24.142 DEBUG [Thread-1] > org.apache.zookeeper.server.persistence.FileTxnSnapLog - Opening > datadir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748 > > snapDir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748 > 11:07:24.145 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > tickTime set to 3000 > 11:07:24.145 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > minSessionTimeout set to -1 > 11:07:24.145 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - > maxSessionTimeout set to -1 > 11:07:24.151 INFO [Thread-1] > org.apache.zookeeper.server.NIOServerCnxnFactory - binding to port > 0.0.0.0/0.0.0.0:2181 > 11:07:24.162 INFO [Thread-1] > org.apache.zookeeper.server.persistence.FileTxnSnapLog - Snapshotting: 0x0 to > /var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748/version-2/snapshot.0 > 11:07:29.230 INFO [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] > org.apache.zookeeper.ClientCnxn - Opening socket connection to server > fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181. Will not attempt to > authenticate using SASL (unknown error) > 11:07:29.231 INFO [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] > org.apache.zookeeper.ClientCnxn - Socket connection established to > fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, initiating session > 11:07:29.231 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] > org.apache.zookeeper.server.NIOServerCnxnFactory - Accepted socket connection > from /fe80:0:0:0:0:0:0:1%1:50774 > 11:07:29.232 DEBUG [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] > org.apache.zookeeper.ClientCnxn - Session establishment request sent on > fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181 > 11:07:29.235 DEBUG [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] > org.apache.zookeeper.server.ZooKeeperServer - Session establishment request > from client /fe80:0:0:0:0:0:0:1%1:50774 client's lastZxid is 0x0 > 11:07:29.236 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] > org.apache.zookeeper.server.ZooKeeperServer - Client attempting to establish > new session at /fe80:0:0:0:0:0:0:1%1:50774 > 11:07:29.238 INFO [SyncThread:0] > org.apache.zookeeper.server.persistence.FileTxnLog - Creating new log file: > log.1 > 11:07:29.243 DEBUG [SyncThread:0] > org.apache.zookeeper.server.FinalRequestProcessor - Processing request:: > sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1 txntype:-10 > reqpath:n/a > 11:07:29.246 DEBUG [SyncThread:0] > org.apache.zookeeper.server.FinalRequestProcessor - > sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1 txntype:-10 > reqpath:n/a > 11:07:29.249 INFO [SyncThread:0] org.apache.zookeeper.server.ZooKeeperServer > - Established session 0x13b622a66870000 with negotiated timeout 60000 for > client /fe80:0:0:0:0:0:0:1%1:50774 > 11:07:29.249 INFO [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] > org.apache.zookeeper.ClientCnxn - Session establishment complete on server > fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, sessionid = > 0x13b622a66870000, negotiated timeout = 60000 > 11:07:29.250 DEBUG [main-EventThread] > st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event: type=None, > state=SyncConnected, path=null > 11:07:29.250 DEBUG [main] > st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connected to > localhost:2181 > 11:08:09.250 INFO [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] > org.apache.zookeeper.ClientCnxn - Client session timed out, have not heard > from server in 40000ms for sessionid 0x13b622a66870000, closing socket > connection and attempting reconnect > 11:08:09.352 DEBUG [main-EventThread] > st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event: type=None, > state=Disconnected, path=null > 11:08:09.352 DEBUG [main-EventThread] > st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Lost connection to > localhost:2181 > 11:08:09.352 DEBUG [main-EventThread] org.apache.zookeeper.ZooKeeper - > Closing session: 0x13b622a66870000 > 11:08:09.353 DEBUG [main-EventThread] org.apache.zookeeper.ClientCnxn - > Closing client for session: 0x13b622a66870000 > 11:08:09.359 ERROR [main] st.ata.vcc.proxy.common.model.RoutePublisherTest - > Cannot start RoutePublisherTest > st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection > at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103) > ~[classes/:na] > at > st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36) > ~[classes/:na] > at > st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35) > ~[test-classes/:na] > at > st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28) > [test-classes/:na] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.7.0_05] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > ~[na:1.7.0_05] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.7.0_05] > at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05] > at > org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) > [testng-6.5.2.jar:na] > at > org.testng.internal.MethodInvocationHelper$2.runConfigurationMethod(MethodInvocationHelper.java:274) > [testng-6.5.2.jar:na] > at > mockit.integration.testng.internal.TestNGRunnerDecorator.run(TestNGRunnerDecorator.java:81) > [jmockit-0.999.10.jar:na] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.7.0_05] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > ~[na:1.7.0_05] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.7.0_05] > at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05] > at > org.testng.internal.MethodInvocationHelper.invokeConfigurable(MethodInvocationHelper.java:286) > [testng-6.5.2.jar:na] > at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:543) > [testng-6.5.2.jar:na] > at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) > [testng-6.5.2.jar:na] > at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) > [testng-6.5.2.jar:na] > at > org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175) > [testng-6.5.2.jar:na] > at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107) > [testng-6.5.2.jar:na] > at org.testng.TestRunner.privateRun(TestRunner.java:768) > [testng-6.5.2.jar:na] > at org.testng.TestRunner.run(TestRunner.java:617) [testng-6.5.2.jar:na] > at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) > [testng-6.5.2.jar:na] > at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) > [testng-6.5.2.jar:na] > at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) > [testng-6.5.2.jar:na] > at org.testng.SuiteRunner.run(SuiteRunner.java:240) [testng-6.5.2.jar:na] > at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) > [testng-6.5.2.jar:na] > at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87) > [testng-6.5.2.jar:na] > at org.testng.TestNG.runSuitesSequentially(TestNG.java:1188) > [testng-6.5.2.jar:na] > at org.testng.TestNG.runSuitesLocally(TestNG.java:1113) > [testng-6.5.2.jar:na] > at org.testng.TestNG.run(TestNG.java:1025) [testng-6.5.2.jar:na] > at > org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76) > [surefire-testng-2.12.jar:2.12] > at > org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161) > [surefire-testng-2.12.jar:2.12] > at > org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101) > [surefire-testng-2.12.jar:2.12] > at > org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115) > [surefire-testng-2.12.jar:2.12] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.7.0_05] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > ~[na:1.7.0_05] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.7.0_05] > at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05] > at > org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) > [surefire-api-2.12.jar:2.12] > at > org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) > [surefire-booter-2.12.jar:2.12] > at > org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) > [surefire-booter-2.12.jar:2.12] > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) > [surefire-booter-2.12.jar:2.12] > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) > [surefire-booter-2.12.jar:2.12] > Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: > KeeperErrorCode = ConnectionLoss for /proxy > at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) > ~[zookeeper-3.4.5.jar:3.4.5-1392090] > at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161) > ~[classes/:na] > at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98) > ~[classes/:na] > ... 44 common frames omitted > Tests run: 5, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 46.141 sec > <<< FAILURE! > start(st.ata.vcc.proxy.common.model.RoutePublisherUnitTest) Time elapsed: > 45.281 sec <<< FAILURE! > st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection > at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103) > at > st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36) > at > st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35) > at > st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28) > Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: > KeeperErrorCode = ConnectionLoss for /proxy > at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) > at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) > at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) > at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) > at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161) > at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98) > ... 44 more > > > > > > Any ideas? > > Thanks, > > Josh
