Return-Path: X-Original-To: apmail-zookeeper-user-archive@www.apache.org Delivered-To: apmail-zookeeper-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2DBE5E0CC for ; Mon, 3 Dec 2012 19:45:14 +0000 (UTC) Received: (qmail 42779 invoked by uid 500); 3 Dec 2012 19:45:13 -0000 Delivered-To: apmail-zookeeper-user-archive@zookeeper.apache.org Received: (qmail 42739 invoked by uid 500); 3 Dec 2012 19:45:13 -0000 Mailing-List: contact user-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@zookeeper.apache.org Delivered-To: mailing list user@zookeeper.apache.org Received: (qmail 42731 invoked by uid 99); 3 Dec 2012 19:45:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Dec 2012 19:45:13 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.217.170] (HELO mail-lb0-f170.google.com) (209.85.217.170) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Dec 2012 19:45:06 +0000 Received: by mail-lb0-f170.google.com with SMTP id j14so2333028lbo.15 for ; Mon, 03 Dec 2012 11:44:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=references:from:mime-version:in-reply-to:date:message-id:subject:to :content-type:content-transfer-encoding:x-gm-message-state; bh=BHhX9ijqIQYXzoNlesap6igas37u40a1QWVr5xFAJx8=; b=emsUGvtdy0t2hwMzCl4F1PkZEYBYZtrDt/QqhjMnylxQkLswUiIwOXj8XrOvoofsaO MrY3Pl8FGBrAk7wiBetI+Z8qjX7yBfRLBhiJ891mtT6683iXAlQ9AcED2DCA675+Ri7y 9+8gZxwnVCoB4oErKJzS1AV6SlIrGqia4zLkK5jxf/V/nIUxYlI+ESkKUq7qwaEFnzaz UVhm4LnUFQDD+RLhx93STmIeU9AYBJTiqrOxH3viazhaiyjJiXvH1u/S2clTKzb5s0Yh I1M5rowIDNHPn23oXk7xfA8rEGuz0aYGtA+3ex6EqXqKAWewwANi0kTeulAVHaPuPfLU Dkew== Received: by 10.112.17.129 with SMTP id o1mr4800076lbd.54.1354563884952; Mon, 03 Dec 2012 11:44:44 -0800 (PST) References: From: Jordan Zimmerman Mime-Version: 1.0 (1.0) In-Reply-To: Date: Mon, 3 Dec 2012 11:44:42 -0800 Message-ID: <4285590756710243420@unknownmsgid> Subject: Re: Embedded ZK instance for unit testing To: "user@zookeeper.apache.org" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQkPXT46fwnIkYstgJvTebUDf+EfIStpKEoUENHdRUKLTk6CmhrjE6vXhWrFrz02ICyV4/3S X-Virus-Checked: Checked by ClamAV on apache.org Curator has a test ZK server and cluster: curator-test =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Jordan Zimmerman On Dec 3, 2012, at 11:39 AM, Joshua Blatt 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 d= o 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 uni= t 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 tri= ed inserting a several minute sleep after startup to give it time to initia= lize, 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.

> * WARNING: This class is only intended for unit testing. It's not product= ion- > * grade. > * > * @author jblatt > */ > public class EmbeddedZooKeeper extends ZooKeeperServerMain { > > private static final Logger LOGGER =3D > LoggerFactory.getLogger(EmbeddedZooKeeper.class); > private final File dataDir =3D new File( > FileUtils.getTempDirectoryPath() + "/" > + UUID.randomUUID().toString()); > private final int clientPort; > private final Semaphore isRunning =3D new Semaphore(0); > private Thread thread; > > public EmbeddedZooKeeper(int clientPort) throws ZooKeeperException { > this.clientPort =3D clientPort; > } > > public void start() throws ZooKeeperException { > try { > FileUtils.forceMkdir(dataDir); > > final EmbeddedZooKeeper self =3D this; > > thread =3D 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 don= e > // on a running ZK server. We don't want to clutter up the u= ser'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.EmbeddedZooKeeper= ForUnitTest - Begin EmbeddedZooKeeperForUnitTests.start() > 11:07:24.066 INFO [main] st.ata.vcc.proxy.common.model.EmbeddedZooKeeper= ForUnitTest - Embedded ZooKeeper started > 11:07:24.066 INFO [Thread-1] st.ata.vcc.control.core.zookeeper.EmbeddedZ= ooKeeper - Starting ZK server > 11:07:24.086 INFO [main] st.ata.vcc.proxy.common.model.RoutePublisherTes= t - 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@6b08= d7cf > 11:07:24.087 INFO [main] st.ata.vcc.control.core.zookeeper.ZooKeeperConn= ection - Connecting to localhost:2181 > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:zookeeper.version=3D3.4.5-1392090, built on 09/30/2012 17:52 GMT > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:host.name=3D10.66.225.162 > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.version=3D1.7.0_05 > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.vendor=3DOracle Corporation > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.home=3D/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/= jre > 11:07:24.093 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.class.path=3D/Users/jblatt/dev/proxy/common/target/test-classes:/= Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/s= t/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/repos= itory/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/User= s/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/j= etty/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-serve= r/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/jerse= y-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/reposit= ory/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repo= sitory/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/jblat= t/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-a= sl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapp= er-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/re= pository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.1= 2.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-cl= ient/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/jbla= tt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-fra= mework-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/glass= fish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repo= sitory/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/je= rsey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/reposito= ry/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.1= 0/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ga= nymed-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/repos= itory/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-jav= a-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-loggi= ng/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-be= ta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/common= s-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/cor= e-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/l= og4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/as= ync-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/reposit= ory/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repo= sitory/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/j= blatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.j= ar:/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/r= epository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jb= latt/.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/repo= sitory/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repo= sitory/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repositor= y/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.2012= 04190339-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/.m= 2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-group= er-2.12.jar: > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.library.path=3D/Users/jblatt/Library/Java/Extensions:/Library/Jav= a/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensio= ns:/usr/lib/java:. > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.io.tmpdir=3D/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/ > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:java.compiler=3D > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:os.name=3DMac OS X > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:os.arch=3Dx86_64 > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:os.version=3D10.8.2 > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:user.name=3Djblatt > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:user.home=3D/Users/jblatt > 11:07:24.094 INFO [main] org.apache.zookeeper.ZooKeeper - Client environ= ment:user.dir=3D/Users/jblatt/dev/proxy/common > 11:07:24.095 INFO [main] org.apache.zookeeper.ZooKeeper - Initiating cli= ent connection, connectString=3Dlocalhost:2181 sessionTimeout=3D300000 watc= her=3Dst.ata.vcc.control.core.zookeeper.ZooKeeperConnection$ConnectionWatch= er@457b9183 > 11:07:24.100 DEBUG [main] org.apache.zookeeper.ClientCnxn - zookeeper.dis= ableAutoWatchReset 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:7= 01) ~[na:1.7.0_05] > at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSock= etNIO.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:7= 62) ~[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(ClientCnxnSocketNI= O.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) ~[n= a:1.7.0_05] > at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNI= O.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.H= ierarchyDynamicMBean). > 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.ZooKeeperServer= Main - Starting server > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:zookeeper.version=3D3.4.5-1392090, built on 09/30/201= 2 17:52 GMT > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:host.name=3D10.66.225.162 > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:java.version=3D1.7.0_05 > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:java.vendor=3DOracle Corporation > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:java.home=3D/Library/Java/JavaVirtualMachines/1.7.0.j= dk/Contents/Home/jre > 11:07:24.139 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:java.class.path=3D/Users/jblatt/dev/proxy/common/targ= et/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/.m= 2/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/je= tty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/reposit= ory/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.j= ar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jett= y-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-gri= zzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/je= rsey/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/reposit= ory/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/r= epository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/j= blatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/User= s/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/jac= kson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m= 2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Us= ers/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jer= sey-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/jerse= y-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblat= t/.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/glassfis= h/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jbla= tt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/manageme= nt-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/gr= izzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/rep= ository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/User= s/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizz= ly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/g= rizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repo= sitory/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jb= latt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/o= rg.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/common= s-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/com= mons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/c= h/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblat= t/.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/l= ogback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-s= dk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logg= ing/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repos= itory/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.j= ar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta= 1/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/contro= l/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/codehau= s/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/rep= ository/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/repos= itory/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/j= blatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/User= s/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:/U= sers/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Fi= nal.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.j= ar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/User= s/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/User= s/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jbl= att/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jbla= tt/.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/slf4= j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apac= he/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=3D/Users/jblatt/Library/Java/Extens= ions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Libr= ary/Java/Extensions:/usr/lib/java:. > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:java.io.tmpdir=3D/var/folders/zq/76dngxt50rd1hzys0bnz= hwg40000gn/T/ > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:java.compiler=3D > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:os.name=3DMac OS X > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:os.arch=3Dx86_64 > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:os.version=3D10.8.2 > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:user.name=3Djblatt > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:user.home=3D/Users/jblatt > 11:07:24.140 INFO [Thread-1] org.apache.zookeeper.server.ZooKeeperServer= - Server environment:user.dir=3D/Users/jblatt/dev/proxy/common > 11:07:24.142 DEBUG [Thread-1] org.apache.zookeeper.server.persistence.Fil= eTxnSnapLog - Opening datadir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000g= n/T/51bc2e1d-270b-42df-bb82-6330a1081748 snapDir:/var/folders/zq/76dngxt50r= d1hzys0bnzhwg40000gn/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.NIOServerCnxnFa= ctory - binding to port 0.0.0.0/0.0.0.0:2181 > 11:07:24.162 INFO [Thread-1] org.apache.zookeeper.server.persistence.Fil= eTxnSnapLog - Snapshotting: 0x0 to /var/folders/zq/76dngxt50rd1hzys0bnzhwg4= 0000gn/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.apach= e.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 SA= SL (unknown error) > 11:07:29.231 INFO [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apach= e.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 /f= e80: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.apach= e.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 clie= nt /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 sess= ion 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.FinalReques= tProcessor - Processing request:: sessionid:0x13b622a66870000 type:createSe= ssion cxid:0x0 zxid:0x1 txntype:-10 reqpath:n/a > 11:07:29.246 DEBUG [SyncThread:0] org.apache.zookeeper.server.FinalReques= tProcessor - sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0= x1 txntype:-10 reqpath:n/a > 11:07:29.249 INFO [SyncThread:0] org.apache.zookeeper.server.ZooKeeperSe= rver - 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.apach= e.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 =3D 0x13b622a66870000, neg= otiated timeout =3D 60000 > 11:07:29.250 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.Z= ooKeeperConnection - ZK event: type=3DNone, state=3DSyncConnected, path=3Dn= ull > 11:07:29.250 DEBUG [main] st.ata.vcc.control.core.zookeeper.ZooKeeperConn= ection - Connected to localhost:2181 > 11:08:09.250 INFO [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apach= e.zookeeper.ClientCnxn - Client session timed out, have not heard from serv= er in 40000ms for sessionid 0x13b622a66870000, closing socket connection an= d attempting reconnect > 11:08:09.352 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.Z= ooKeeperConnection - ZK event: type=3DNone, state=3DDisconnected, path=3Dnu= ll > 11:08:09.352 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.Z= ooKeeperConnection - Lost connection to localhost:2181 > 11:08:09.352 DEBUG [main-EventThread] org.apache.zookeeper.ZooKeeper - Cl= osing session: 0x13b622a66870000 > 11:08:09.353 DEBUG [main-EventThread] org.apache.zookeeper.ClientCnxn - C= losing client for session: 0x13b622a66870000 > 11:08:09.359 ERROR [main] st.ata.vcc.proxy.common.model.RoutePublisherTes= t - 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.j= ava:36) ~[classes/:na] > at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublish= erTest.java:35) ~[test-classes/:na] > at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePub= lisherUnitTest.java:28) [test-classes/:na] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.= 7.0_05] > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp= l.java:57) ~[na:1.7.0_05] > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc= essorImpl.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(MethodInvoc= ationHelper.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(TestNG= RunnerDecorator.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(NativeMethodAccessorImp= l.java:57) ~[na:1.7.0_05] > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc= essorImpl.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(Metho= dInvocationHelper.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(TestM= ethodWorker.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) [testn= g-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) [t= estng-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.executeMu= lti(TestNGDirectoryTestSuite.java:161) [surefire-testng-2.12.jar:2.12] > at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(T= estNGDirectoryTestSuite.java:101) [surefire-testng-2.12.jar:2.12] > at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvid= er.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(NativeMethodAccessorImp= l.java:57) ~[na:1.7.0_05] > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc= essorImpl.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.invokeMethodWithArra= y(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12] > at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invo= ke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12] > at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(Pro= viderFactory.java:85) [surefire-booter-2.12.jar:2.12] > at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(Fo= rkedBooter.java:103) [surefire-booter-2.12.jar:2.12] > at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.jav= a:74) [surefire-booter-2.12.jar:2.12] > Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: = KeeperErrorCode =3D 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) ~[zookee= per-3.4.5.jar:3.4.5-1392090] > at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) ~[zookee= per-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 se= c <<< 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.j= ava:36) > at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublish= erTest.java:35) > at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePub= lisherUnitTest.java:28) > Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: = KeeperErrorCode =3D 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