|
From: Juan R. <Jua...@Su...> - 2008-05-23 18:41:12
|
Hi, Ben. Thanks for the prompt reply.
Benjamin Reed wrote:
> Usually, this exception means that the server closed the socket. Are you
> seeing anything strange in the server log?
>
It seems like the server is expiring the session; not sure why.
2008-05-23 14:26:08,354 - WARN [NIOServerCxn.Factory:NIOServerCnxn@471]
- Connected to /xxx.xxx.xxx.xxx:35713 lastZxid 0
2008-05-23 14:26:08,362 - WARN [NIOServerCxn.Factory:NIOServerCnxn@500]
- Creating new session 11a1707891b0000
2008-05-23 14:26:08,406 - WARN [SyncThread:NIOServerCnxn@774] -
Finished init of 11a1707891b0000: true
2008-05-23 14:26:15,010 - WARN [SessionTracker:SessionTrackerImpl@133]
- Expiring 11a1707891b0000
2008-05-23 14:26:15,017 - WARN [ProcessThread:PrepRequestProcessor@341]
- Processed session termination request for id: 11a1707891b0000
New connection request from client?
2008-05-23 14:26:15,816 - WARN [NIOServerCxn.Factory:NIOServerCnxn@471]
- Connected to /xxx.xxx.xxx.xxx:35714 lastZxid -1
2008-05-23 14:26:15,819 - WARN [NIOServerCxn.Factory:NIOServerCnxn@774]
- Finished init of 11a1707891b0000: false
2008-05-23 14:26:15,821 - WARN [NIOServerCxn.Factory:NIOServerCnxn@497]
- Renewing session 11a1707891b0000
But doesn't seem like the client recovers:
com.yahoo.zookeeper.KeeperException: KeeperErrorCode = SessionExpired
at com.yahoo.zookeeper.ZooKeeper.exists(ZooKeeper.java:357)
at zookeeperclient.Main$Process.tryCreate(Main.java:143)
at zookeeperclient.Main$Process.<init>(Main.java:88)
at zookeeperclient.Main.main(Main.java:43)
com.yahoo.zookeeper.KeeperException: KeeperErrorCode = SessionExpired
at com.yahoo.zookeeper.ZooKeeper.exists(ZooKeeper.java:357)
at zookeeperclient.Main$Process.tryCreate(Main.java:143)
at zookeeperclient.Main$Process.<init>(Main.java:88)
at zookeeperclient.Main.main(Main.java:43)
> The null pointer exception is coming from the code that parses the hostPort
> list. Since you are running in standalone mode your hostPort should be a
> string of the form host:port. The relevant code is the following:
>
> String hostsList[] = hosts.split(",");
> for (String host : hostsList) {
> int port = 2181;
> String parts[] = host.split(":"); // LINE 218
>
> It would seem that host is null, but I'm at a complete loss for how that could
> be...
Sorry, that was my bad. It seems that once the ZooKeeper instance gets
into the SessionExpired state, it doesn't recover. Is this expected? I
had some code creating a new instance as a workaround and had not
properly persisted the connection string.
Thanks again,
Juan
|