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 |