Created: https://issues.apache.org/jira/browse/ZOOKEEPER-1132
On Thu, Jul 21, 2011 at 6:25 PM, Patrick Hunt <[email protected]> wrote: > I think the FAQ is out of date, iirc it's probably due to this change > https://issues.apache.org/jira/browse/ZOOKEEPER-710 > specifically > "the leader needs to drop the connection when it sees the MOVED error > so that the client can reestablish the session properly with another > machine" > which I believe you are seeing here. > > Also see this thread, there are other issues: > http://markmail.org/message/wqj347dlrsd74qya > > I would think though that zoo1 should eventually see the session > expiration - it will get disconnected but will then re-attempt to > connect to the server, at which point it will be notice the session is > expired. > > Would you mind entering a JIRA for this (to update the FAQ). Thanks! > > Patrick > > On Thu, Jul 21, 2011 at 1:36 PM, Will Johnson > <[email protected]> wrote: > > i'm trying to test SessionExpired based on the FAQ ( > > http://wiki.apache.org/hadoop/ZooKeeper/FAQ) can anyone point out why > i'm > > getting ConnectionLoss exceptions instead of SessionExpiredExceptions > based > > on the unit test below: > > > > @Test > > public void testSimpleConnection() throws Exception { > > String hostPort = "localhost:9999"; > > ZooKeeper zoo1 = new ZooKeeper(hostPort, 1000, null); > > > > // just make sure we can talk to zookeeper > > Assert.assertNull(zoo1.exists("/foo", false)); > > zoo1.create("/foo", null, Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); > > Assert.assertNotNull(zoo1.exists("/foo", false)); > > > > // construct another client with the same id > > ZooKeeper zoo2 = new ZooKeeper(hostPort, zoo1.getSessionTimeout(), > null, > > zoo1.getSessionId(), null); > > // closing this session should invalidate the first: > > http://wiki.apache.org/hadoop/ZooKeeper/FAQ > > zoo2.close(); > > > > // sleep just to make sure everything gets evicted > > Thread.sleep(zoo1.getSessionTimeout() * 2); > > > > // closing this session should invalidate the first: > > http://wiki.apache.org/hadoop/ZooKeeper/FAQ > > // this is where i always get ConnectionLoss instead of SessionExpired > > Assert.assertNull(zoo1.exists("/foo", false)); > > > > } > > >
